sql server的引号问题(单引号,双引号)

时间:2022-08-04 00:41:13
分隔符仅用于标识符。分隔符不能用于关键字,不论它们在 SQL Server 中是否被标记为保留字。
  • 被引用的标识符用双引号 (") 分隔开:
    SELECT * FROM "Blanks in Table Name"
    
  • 括在括号中的标识符用方括号 ([ ]) 分隔:
    SELECT * FROM [Blanks In Table Name]

当 QUOTED_IDENTIFIER 为 ON 时,对于 SQL 语句中的双引号和单引号 (') 的使用,SQL Server 遵循 SQL-92 规则:

双引号只能用于分隔标识符,不能用于分隔字符串。

为保持与现有应用程序的兼容性,SQL Server 并不完全强制该规则。如果字符串没有超过标识符的长度,则该字符串可包含在双引号内。但不建议这样做。

单引号必须用来包含字符串,不能用于分隔标识符。

如果字符串包含单引号,则需要在单引号前再增加一个单引号:

SELECT * FROM "My Table" WHERE "Last Name" = 'O''Brien' 

当 QUOTED_IDENTIFIER 为 OFF 时,对于双引号和单引号的使用,SQL Server 遵循如下规则:

引号不能用于分隔标识符,而是用括号作为分隔符。

单引号或双引号可用于包含字符串。

如果使用双引号,嵌入的单引号不需要用两个单引号来表示:

SELECT * FROM [My Table] WHERE [Last Name] = "O'Brien"