我是否在unicode的“insert into”语句中使用了前缀N?

时间:2008-12-25 16:00:10

标签: sql-server unicode

像:
插入表(col)值(N'multilingual unicode strings')

我正在使用SQL Server 2008,我已经使用nVarChar作为列数据类型。

4 个答案:

答案 0 :(得分:12)

只有当字符串包含不在默认代码页内的字符时,才需要N''语法。 “最佳实践”是在插入nvarchar或ntext列时使用N'。

答案 1 :(得分:3)

是的,如果字符串中包含unicode字符,则会执行此操作。

在线图书(http://msdn.microsoft.com/en-us/library/ms191313.aspx)...

“出现在服务器上执行的代码中的Unicode字符串常量(例如存储过程和触发器中)必须以大写字母N开头。即使引用的列已经定义为Unicode,也是如此。 N前缀,字符串转换为数据库的默认代码页。这可能无法识别某些字符。使用N前缀的要求适用于源自服务器的字符串常量和客户端发送的字符串常量。“ p>

答案 2 :(得分:0)

出于兼容性考虑,这是最好的。

答案 3 :(得分:0)

最佳做法是使用parameterisation,在这种情况下,您不需要N前缀。