示例here中提到的N
中的=N'...'
是什么。
USE msdb ;
GO
EXEC dbo.sp_add_job
@job_name = N'Ad hoc Sales Data Backup',
@enabled = 1,
@description = N'Ad hoc backup of sales data',
@owner_login_name = N'françoisa',
@notify_level_eventlog = 2,
@notify_level_email = 2,
@notify_level_netsend = 2,
@notify_level_page = 2,
@notify_email_operator_name = N'François Ajenstat',
@notify_netsend_operator_name = N'François Ajenstat',
@notify_page_operator_name = N'François Ajenstat',
@delete_level = 1 ;
GO
答案 0 :(得分:2)
数据库无法看到varchar
字面值和nvarchar
字面值之间的差异。当你输入一个字符串('abc'
)时,它不知道你实际上意味着这是unicode。 (有时候这对于获得正确的编码非常重要,例如在使用阿拉伯语或希腊语字符时。)
N
字符串文字前缀将指示该字符串是unicode文字。
答案 1 :(得分:1)
在SQL Server中处理Unicode字符串常量时,必须在所有Unicode字符串前面加上大写字母N,如SQL Server联机丛书主题"使用Unicode数据"中所述。 " N" prefix代表SQL-92标准中的National Language,必须为大写。如果不使用N作为Unicode字符串常量的前缀,SQL Server将在使用该字符串之前将其转换为当前数据库的非Unicode代码页。
它将字符串声明为nvarchar
数据类型,而不是varchar
。
看看这个。以下文章提供了一些关于这个问题的好信息
http://databases.aspfaq.com/general/why-do-some-sql-strings-have-an-n-prefix.html http://support.microsoft.com/default.aspx/kb/239530
答案 2 :(得分:0)
N'..'
表示参数为nvarchar
数据类型
答案 3 :(得分:0)
它将字符串声明为nvarchar
数据类型,而不是varchar
Here Is Best Answer