我正在读的书上说
SQL Server 支持两种字符数据类型:常规和 Unicode。常规数据类型包括 CHAR 和 VARCHAR,Unicode 数据类型包括 NCHAR 和 NVARCHAR。不同之处在于,常规字符每个字符使用一个字节存储,而 Unicode 字符每个字符需要两个字节。由于每个字符存储一个字节,因此为列选择常规字符类型会限制您只能使用除英语之外的一种语言,因为单个字节只能表示 256 (2^8) 个不同的字符。
我由此了解到,如果我使用 Varchar,那么我只能使用一种语言(例如印地语,一种印度语言)和英语。
但是当我运行这个
Create Table NameTable
(
NameColumn varchar(MAX) COLLATE Indic_General_90_CI_AS_KS
)
它显示错误“排序规则‘Indic_General_90_CI_AS_KS’仅在 Unicode 数据类型上受支持,不能应用于 char、varchar 或文本数据类型。”
那么我哪里误解了作者呢?
Thanks
您可以找到排序规则列表here http://msdn.microsoft.com/en-us/library/ms174596(SQL.90).aspx,以及编码类型
某些排序规则仅适用于 1 字节编码——127 位用于普通 ASCII,128 位可用于其他字符——印地语可能不适合 128 个字符,因此 1 字节排序规则不适用于它。
您必须使用 nvarchar (或其他带有“n”前缀的字符类型)。
- 编辑 -
French_CI_AS 作为非英语示例
排序规则所实现的功能之一是特定于语言和区域设置的字符排序。因此法语!=拉丁语。
另一个例子arabic_CI_AS
这是使用阿拉伯字母的 1 字节编码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)