在SQL中将'N'放在函数参数前面的目的是什么?

时间:2010-03-15 15:21:07

标签: sql sql-server tsql

在TSQL中将'N'放在函数参数前面的目的是什么?

例如,N在以下代码中的函数参数前面的含义是什么:

object_id(N'dbo.MyTable')

1 个答案:

答案 0 :(得分:41)

它表示“国有化”a.k.a. unicode字符串常量。

http://support.microsoft.com/kb/239530

  

在SQL Server中处理Unicode字符串常量时,必须在所有Unicode字符串前面加上大写字母N,如SQL Server联机丛书主题“使用Unicode数据”中所述。

http://msdn.microsoft.com/en-us/library/aa276823%28SQL.80%29.aspx

  

ncharnvarchar

     

字符数据类型,它们是固定长度(nchar)或可变长度(nvarchar)的Unicode数据,并使用UNICODE UCS-2字符集。

     

nchar(n)

     

n个字符的固定长度Unicode字符数据。 n必须是1到4,000之间的值。 存储大小是n个字节的两倍。 nchar的SQL-92同义词是国家字符和国家字符

     

nvarchar(n)

     

n个字符的可变长度Unicode字符数据。 n必须是1到4,000之间的值。 存储大小(以字节为单位)是输入字符数的两倍。输入的数据长度可以是0个字符。 nvarchar的SQL-92同义词是国家字符变化和国家字符变化