1

在 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 行“测试”附近的语法不正确。

什么是正确的形式?

4

2 回答 2

0

在 T-SQL 中,您可以使用双引号在 SELECT 语句中指定列的名称,同样可以使用方括号 []。

相比

select 1 as "value x"
select 1 as [value x]

两者都会产生一个名为value x.

对于字符串文字,只能使用 '' 和 N''。

尼古拉评论后更新

T-SQL 常量上的MSDN 页面仅提到“字符串常量”的 QUOTED_IDENTIFIER/双引号/单引号行为,但“Unicode 字符串”部分仅指N''符号。

于 2012-09-17T22:01:12.720 回答
0

不能使用双引号在 T-SQL 中分隔 Unicode 字符串。

所以呢?您要解决的问题是什么?

您仍然可以通过将单引号加倍来在 Unicode 字符串中嵌入单引号。

SELECT N'This isn''t a problem'
于 2012-09-17T22:17:59.727 回答