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

来源:百度知道 编辑:UC知道 时间:2024/09/22 01:05:00
有时看见语句:
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 常量指派当前数据库的默认排序规则,除非使用 COLLATE 子句为其指定了排序规则。Unicode 数据中的每个字符都使用两个字节进行存储,而字符数据中的每个字符则都使用一个字节进行存储。有关更多信息,请参见使用 Unicode 数据。

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

使用N作为前缀表示你上面语句中的name的数据类型是Unicode字符串类型;
例如N'sdaf' 是Unicode常量,而'sdaf'是字符窜常量;对于字符数据,存储Unicode数据时每个字符使用2个字节,而不是每个字符1个字节。

其中的N是代表以Unicode格式存储的,但你上面那句”WHERE name=N'sdaf' “的意思是不变的,还是当名字等于sdaf时如何如何,只是数据库中表的sdaf的存储方式也应为Unicode格式的就可以^^

the “young females” who graced that

存储跟数据库服务器的语言环境不一样的字符的时候用的。
存储这种字符的字段类型应该是 nchar 或者 nvarchar