字符串文字上的SQL Server T-SQL N前缀

时间:2013-10-11 18:51:52

标签: sql sql-server tsql

这可能是一个noob问题,但我找到了一些T-SQL查询示例来验证数据库大小SELECTWHERE子句here

以下是代码:

SELECT name, size, size*1.0/128 AS [Size in MBs] 
FROM sys.master_files
WHERE name = N'mytest';

我的问题是N子句中WHERE name = N'keyword'前缀的含义是什么?

我之前总是使用WHERE name = 'keyword',但我找不到差异(您可以自己尝试)。

我用Google搜索了,但我不知道我应该搜索的关键字

4 个答案:

答案 0 :(得分:4)

它将字符串声明为nvarchar数据类型(Unicode),而不是varchar(8位编码,包括ASCII)。

仅供参考,这是问题的重复: What is the meaning of the prefix N in T-SQL statements?

答案 1 :(得分:2)

N表示给定字符串中可能有一些unicode字符。

答案 2 :(得分:1)

来自docs: -

  

您可能已经看过使用传递字符串的Transact-SQL代码   一个N前缀。 这表示后续字符串是Unicode格式   (N实际上代表国家语言字符集。)哪个   表示您传递的是NCHAR,NVARCHAR或NTEXT值   反对CHAR,VARCHAR或TEXT。

答案 3 :(得分:1)

这意味着unicode。请参阅http://msdn.microsoft.com/en-us/library/bb399176.aspx要将字符串文字声明为Unicode,请在文字前面加上大写的“N”