如何插入到名称为sql关键字的列中
我需要一个存储键值对的表,所以我创建了一个表,其中包含一个名为“key”的列和一个名为“value”的列 这失败了:如何插入到名称为sql关键字的列中,sql,insert,Sql,Insert,我需要一个存储键值对的表,所以我创建了一个表,其中包含一个名为“key”的列和一个名为“value”的列 这失败了: insert into mykeyvalues (Key,Value) values ('FooKey', 'FooValue') “关键字“key”附近的语法不正确。” 也许我不应该称之为“键”,但我只是想知道是否有可能使用一个名称为sql关键字的列 谢谢这样的列名可以用[]括号括起来。因此: insert into mykeyvalues ([Key],[Value]) v
insert into mykeyvalues (Key,Value) values ('FooKey', 'FooValue')
“关键字“key”附近的语法不正确。”
也许我不应该称之为“键”,但我只是想知道是否有可能使用一个名称为sql关键字的列
谢谢这样的列名可以用[]括号括起来。因此:
insert into mykeyvalues ([Key],[Value]) values ('FooKey', 'FooValue')
在查询中的标识符周围使用倒钩(`)或双引号(“)。例如:
INSERT INTO mykeyvalues ("Key", "Value") values ('FooKey', 'FooValue')
但从长远来看,这只会降低可移植性。使用不同的名称更容易。事实上,我相信您的示例是符合ANSI SQL标准的。是的,但现实生活中的DBs通常不尊重ANSI——例如,一个想要双引号,另一个想要方括号,还有一个想要反勾等等——一个接一个地让人头疼:-(谢谢。我不确定John的答案还是这一个应该是公认的答案。两者都像一个符咒。这一个应该是正确的答案,它是T-SQL,而不仅仅是MS-SQL,因此它将适用于几乎所有的SQL查询,而不仅仅是在Microsoft SQL Server上运行的查询……它假定MS SQL.ANSI是否启用了带引号的标识符,使用“如果您只使用MS SQL,则会让人感到困惑和难以阅读。如果您从Java获取值“key”,并且无法手动将其括起来,那么您会怎么做?