sql server中,N''表示什么意思?

有时看见语句:
WHERE name=N'sdaf'
其中,N''是什么意思?

加上 N 代表存入数据库时以 Unicode 格式存储。

N'string' 表示string是个Unicode字符串

Unicode 字符串的格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。N 前缀必须是大写字母。例如,'Michél' 是字符串常量而 N'Michél' 则是 Unicode 常量。Unicode 常量被解释为 Unicode 数据,并且不使用代码页进行计算。Unicode 常量确实有排序规则,主要用于控制比较和区分大小写。

Unicode 字符串常量支持增强的排序规则。

扩展资料:

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。目前的Unicode字符分为17组编排,0x0000 至 0x10FFFF,每组称为平面(Plane),而每平面拥有65536个码位,共1114112个。然而目前只用了少数平面。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

通用字符集(Universal Character Set, UCS)是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。UCS-2用两个字节编码,UCS-4用4个字节编码。

历史上存在两个独立的尝试创立单一字符集的组织,即国际标准化组织(ISO)和多语言软件制造商组成的统一码联盟。前者开发的 ISO/IEC 10646 项目,后者开发的统一码项目。因此最初制定了不同的标准。

参考资料来源:百度百科-Unicode

参考资料来源:百度百科-SqlServer

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-06
加上 N 代表存入数据库时以 Unicode 格式存储。
N'string' 表示string是个Unicode字符串

Unicode 字符串的格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。N 前缀必须是大写字母。例如,'Michél' 是字符串常量而 N'Michél' 则是 Unicode 常量。Unicode 常量被解释为 Unicode 数据,并且不使用代码页进行计算。Unicode 常量确实有排序规则,主要用于控制比较和区分大小写。为 Unicode 常量指派当前数据库的默认排序规则,除非使用 COLLATE 子句为其指定了排序规则。Unicode 数据中的每个字符都使用两个字节进行存储,而字符数据中的每个字符则都使用一个字节进行存储。有关更多信息,请参见使用 Unicode 数据。

Unicode 字符串常量支持增强的排序规则。本回答被提问者采纳
第2个回答  2009-02-13
使用N作为前缀表示你上面语句中的name的数据类型是Unicode字符串类型;
例如N'sdaf' 是Unicode常量,而'sdaf'是字符窜常量;对于字符数据,存储Unicode数据时每个字符使用2个字节,而不是每个字符1个字节。
第3个回答  2009-02-13
存储跟数据库服务器的语言环境不一样的字符的时候用的。
存储这种字符的字段类型应该是 nchar 或者 nvarchar
第4个回答  2009-02-13
其中的N是代表以Unicode格式存储的,但你上面那句”WHERE name=N'sdaf' “的意思是不变的,还是当名字等于sdaf时如何如何,只是数据库中表的sdaf的存储方式也应为Unicode格式的就可以^^