使用双引号的unicode字符串文字

时间:2012-09-17 21:31:26

标签: sql-server sql-server-2008 tsql unicode-literals

在SQL Server中我们表示unicode字符串文字:

declare @s nvarchar(max)
select @s = N'test'

但是,我们也可以使用双引号...所以我们应该能够这样做:

set quoted_identifier off
declare @s nvarchar(max)
select @s = N"test"

但我出错了:

  

Msg 102,Level 15,State 1,Line 2'test'附近的语法不正确。

什么是正确的表格?

2 个答案:

答案 0 :(得分:0)

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

比较

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

两者都会生成一个名为value x的列。

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

在Nikola的评论之后

更新

MSDN page on T-SQL constants仅针对“字符串常量”提及QUOTED_IDENTIFIER /双引号/单引号行为,但“Unicode字符串”部分仅引用N''表示法。

答案 1 :(得分:0)

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

那又怎样?你试图解决的问题是什么?

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

SELECT N'This isn''t a problem'