Sql Server整理

我正在阅读的那本书说明了这一点

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
)

显示错误“仅在Unicode数据类型上支持Collat​​ion’Indra_General_90_CI_AS_KS’,并且不能应用于char,varchar或text数据类型.”

那么我在哪里误解了作者呢?
谢谢

解决方法

您可以找到排序列表 here以及编码类型

某些排序规则仅适用于1字节编码 – 127位用于普通ASCII,128位可用于其他字符 – 印地语可能不适合128个字符,因此1字节排序规则不适用于它.

您将不得不使用nvarchar(或其他’n’前缀字符类型).

– 编辑 –

French_CI_AS是一个非英语的例子

排序规则启用的一个功能是语言和区域设置特定的字符排序.因此,法语!=拉丁语.

另一个例子是Arabic_CI_AS

这是一个带有阿拉伯字母的1字节编码.

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03