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)
该"N"前缀代表国家语言在SQL-92标准,并用于表示Unicode字符.
每次将Unicode数据传递给SQL Server时,都必须在Unicode字符串前加上N.
它用于当所述类型是从NVARCHAR,NCHAR或NTEXT.
有关更多信息,请参阅:为什么有些SQL字符串有'N'前缀?
'abcd'是[var]char字符串的文字(或者也许是text,但varchar(max)现在会更常见)-占用4个字节的内存,并使用配置SQL Server的任何代码页。N'abcd'是n[var]char字符串的文字(或者可能是ntext,但nvarchar(max)最好),使用UTF-16占用8个字节的内存。这允许完全的国际使用,坦率地说,n[var]char应该是大多数系统中的默认设置。