N用于msdb参数值

时间:2015-03-24 08:23:48

标签: sql sql-server

示例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

4 个答案:

答案 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