“Key”是SQL Server中的保留关键字吗?

“Key”是SQL Server中的保留关键字吗?,sql,sql-server,tsql,Sql,Sql Server,Tsql,今天我运行了一个查询,希望得到表中包含sc_票证名称的keycolumn。所以我试着运行这个查询 SELECT TOP (1000) [ID] ,[Key] ,[Value] FROM [Core].[dbo].[Properties] where key like %sc_ticket% 它给了我一个错误 味精156,第15级,状态1,第6行 关键字“key”附近的语法不正确 对 密钥是MSSQL中的保留关键字 请参见此处的保留关键字列表,在其 有没有办法绕

今天我运行了一个查询,希望得到表中包含sc_票证名称的keycolumn。所以我试着运行这个查询

SELECT TOP (1000) [ID]
      ,[Key]
      ,[Value]
  FROM [Core].[dbo].[Properties]
  where key like %sc_ticket%

它给了我一个错误

味精156,第15级,状态1,第6行 关键字“key”附近的语法不正确

对 密钥是MSSQL中的保留关键字

请参见此处的保留关键字列表,在其

有没有办法绕过这个问题? 对。您可以将单词key括在方括号中,如:[key]

然后,查询变成:

SELECT TOP (1000) [ID]
      ,[Key]
      ,[Value]
  FROM [Core].[dbo].[Properties]
  where [Key] like %sc_ticket%
由于键是保留关键字,请尝试以下查询:

SELECT TOP (1000) [ID]
      ,[Key]
      ,[Value]
  FROM [Core].[dbo].[Properties]
  where [Key] like %sc_ticket%
将钥匙切换到[钥匙]


不要使用关键字来命名列

是,它也是保留的SQL关键字和值。你应该重新命名它。如果不能这样做,请在where子句中使用括号,就像在select中那样 顺便问一下,您的列名是Key还是Key

选择前1000名[ID] ,[键] ,[价值] 来自[Core].[dbo].[Properties] 其中[Key]类似于%sc\u票证%
. 不要使用密钥命名数据库对象;使用其他名称。为什么不尝试使用[]?我的意思是[key]。如果您必须使用关键字作为对象名,请用[]括起来。因此,对于您的这条线,关键点是%sc_ticket%。换成[钥匙]@KrishnaGupta,然后请接受我的回答:@TimBiegeleisen告诉微软,这里给出了正确的解决方案:不要使用关键字作为列名。