我正在看的代码是:
SET @Message = N'Question result is ''' + @CurrentResult + '''. It should be unmarked or incorrect';
THROW 50002,@Message,1
有人能解释为什么开发人员会在引号前加上“N”吗?
答案 0 :(得分:2)
来自备注部分的<{3}}
说该字符串属于Nvarchar
类型且可以包含 unicode 字符
使用字母N前缀Unicode字符串常量。无 N前缀,该字符串被转换为默认代码页 数据库。此默认代码页可能无法识别某些字符。
"N"
前缀代表SQL-92标准中的国家语言,必须为大写。如果不使用N作为Unicode字符串常量的前缀,SQL Server将在使用该字符串之前将其转换为当前数据库的非Unicode代码页。
以下是更详细的信息