N'在SQL脚本中代表什么?(在插入脚本中的字符之前使用的那个)

Ebe*_*aul 25 c# database asp.net

我生成了这样的sql脚本,

INSERT [dbo].[TableName] ([Sno], [Name], [EmployeeId], [ProjectId], [Experience]) 
VALUES (1, N'Dave', N'ESD157', N'FD080', 7)
Run Code Online (Sandbox Code Playgroud)

我想知道N'究竟是什么意思,它的目的是什么呢.

注意:通过搜索答案我可以得到的是N'是国家语言标准的前缀及其使用unicode数据的前缀.但老实说,我无法在这里明确了解N'的确切操作.我很感激你的帮助,请以更容易理解的方式来表达.提前致谢.

Ric*_*der 24

N 用于指定unicode字符串.

这是一个很好的讨论:为什么有些SQL字符串有'N'前缀?

在您的示例中,N不需要前缀,因为ASCII字符(值小于128)直接映射到unicode.但是,如果要插入非ASCII的名称,则N需要前缀.

INSERT [dbo].[TableName] ([Sno], [Name], [EmployeeId], [ProjectId], [Experience]) 
VALUES (1, N'W?hi', 'ESD157', 'FD080', 7)
Run Code Online (Sandbox Code Playgroud)


Vis*_*har 8

"N"前缀代表国家语言在SQL-92标准,并用于表示Unicode字符.

每次将Unicode数据传递给SQL Server时,都必须在Unicode字符串前加上N.

它用于当所述类型是从NVARCHAR,NCHARNTEXT.

有关更多信息,请参阅:为什么有些SQL字符串有'N'前缀?


Mar*_*ell 5

'abcd'[var]char字符串的文字(或者也许是text,但varchar(max)现在会更常见)-占用4个字节的内存,并使用配置SQL Server的任何代码页。N'abcd'n[var]char字符串的文字(或者可能是ntext,但nvarchar(max)最好),使用UTF-16占用8个字节的内存。这允许完全的国际使用,坦率地说,n[var]char应该是大多数系统中的默认设置。