Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何插入到名称为sql关键字的列中_Sql_Insert - Fatal编程技术网

如何插入到名称为sql关键字的列中

如何插入到名称为sql关键字的列中,sql,insert,Sql,Insert,我需要一个存储键值对的表,所以我创建了一个表,其中包含一个名为“key”的列和一个名为“value”的列 这失败了: insert into mykeyvalues (Key,Value) values ('FooKey', 'FooValue') “关键字“key”附近的语法不正确。” 也许我不应该称之为“键”,但我只是想知道是否有可能使用一个名称为sql关键字的列 谢谢这样的列名可以用[]括号括起来。因此: insert into mykeyvalues ([Key],[Value]) v

我需要一个存储键值对的表,所以我创建了一个表,其中包含一个名为“key”的列和一个名为“value”的列

这失败了:

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”,并且无法手动将其括起来,那么您会怎么做?