在SQL Server中,单引号和双引号的使用规则主要取决于QUOTED_IDENTIFIER设置:
1、标识符引用规则
双引号:当QUOTED_IDENTIFIER为ON时,双引号仅用于分隔包含特殊字符(如空格)的标识符(表名、列名等),此时双引号不能用于字符串定界。例如:
SET QUOTED_IDENTIFIER ON;
SELECT * FROM "My Table" WHERE "Column Name" = 'Value'; -- 合法
方括号:SQL Server优先推荐使用方括号[]作为标识符分隔符,无论QUOTED_IDENTIFIER如何设置。例如:
SELECT [Column Name] FROM [My Table]; -- 通用写法
2、字符串引用规则
单引号:必须用于字符串定界,若字符串内包含单引号,需通过双写单引号转义。例如:
SELECT 'It''s a string'; -- 输出: It's a string
双引号:仅当QUOTED_IDENTIFIER为OFF时,双引号可作为字符串定界符(不推荐)。例如:
SET QUOTED_IDENTIFIER OFF;
SELECT "This is a string"; -- 非标准用法
3、特殊字符处理
嵌入单引号需转义为'',而双引号在标识符中需转义为""(当QUOTED_IDENTIFIER为ON时)。
数值类型禁止使用引号包围,否则会被视为字符串。
4、兼容性说明
SQL Server允许在QUOTED_IDENTIFIER为ON时,双引号包含短字符串(长度不超过标识符限制),但会引发警告。标准实践中应严格区分标识符(方括号/双引号)和字符串(单引号)的定界方式。
1629

被折叠的 条评论
为什么被折叠?



