在 SQL Server 中,我们这样表示 unicode 字符串文字:
declare @s nvarchar(max)
select @s = N'test'
但是,我们也可以使用双引号......所以我们应该能够做到这一点:
set quoted_identifier off
declare @s nvarchar(max)
select @s = N"test"
但我错了:
消息 102,级别 15,状态 1,第 2 行“测试”附近的语法不正确。
什么是正确的形式?
在 SQL Server 中,我们这样表示 unicode 字符串文字:
declare @s nvarchar(max)
select @s = N'test'
但是,我们也可以使用双引号......所以我们应该能够做到这一点:
set quoted_identifier off
declare @s nvarchar(max)
select @s = N"test"
但我错了:
消息 102,级别 15,状态 1,第 2 行“测试”附近的语法不正确。
什么是正确的形式?
在 T-SQL 中,您可以使用双引号在 SELECT 语句中指定列的名称,同样可以使用方括号 []。
相比
select 1 as "value x"
select 1 as [value x]
两者都会产生一个名为value x.
对于字符串文字,只能使用 '' 和 N''。
尼古拉评论后更新
T-SQL 常量上的MSDN 页面仅提到“字符串常量”的 QUOTED_IDENTIFIER/双引号/单引号行为,但“Unicode 字符串”部分仅指N''符号。
不能使用双引号在 T-SQL 中分隔 Unicode 字符串。
所以呢?您要解决的问题是什么?
您仍然可以通过将单引号加倍来在 Unicode 字符串中嵌入单引号。
SELECT N'This isn''t a problem'