在TSQL中将'N'放在函数参数前面的目的是什么?
例如,N
在以下代码中的函数参数前面的含义是什么:
object_id(N'dbo.MyTable')
答案 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
nchar
和nvarchar
字符数据类型,它们是固定长度(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同义词是国家字符变化和国家字符变化。