Microsoft SQL Server 2005的排序规则冲突解决(转)

现象:

        在使用Microsoft SQL Server 2005时,要创建一个登录名,并为该登录名关联了一个数据库,但是在选择“安全对象”选项时,却出现了如题所示的错误。其他信息显示为:执行Transact-SQL语句或批处理时发生了异常(Microsoft.SqlServer.ConnectionInfo)。无法解决UNION操作中“SQL_Latin1_General_CP1_CI_AS”和“Chinese_PRC_CI_AS”之间的排序规则冲突。(Microsoft SQL Server,错误:468)

解决办法:

方法1:

    1、插入mssql server 的安装盘,
2、运行-->CMD -->回车
3、在DOS 状态下进入mssql server 的setup目录,之后输入以下代码,回车后稍等十数分钟即可并更改服务器排序规则(务必注意大小写必须一致,另外SAPWD 指数据库服务器sa用户的访问密码)
start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=Chinese_PRC_CI_AS

 

 

Windows / SQL Server 2005 的排序规则
如 Chinese_PRC_Stroke_CS_AI_WS,排序规则名称由两部份构成;

 

前半部份是指本排序规则所支持的字符集。
Chinese_PRC 指针对大陆简体字UNICODE的排序规则。

后半部份即后缀的含义为:
_BIN        指定使用向后兼容的二进制排序顺序。

_BIN2      指定使用 SQL Server 2005 中引入的码位比较语义的二进制排序顺序。

_Stroke   按笔划排序

_CI(CS) 是否区分大小写,CI不区分,CS区分

_AI(AS)    是否区分重音,AI不区分,AS区分

_KI(KS)   是否区分假名类型,KI不区分,KS区分

_WI(WS) 是否区分全半角,WI不区分,WS区分

二进制:    二进制排序顺序既区分大小写,也区分重音。如果未选择此选项,则 SQL Server 将遵循字典中定义的相关语言或字母表的排序和比较规则。

二进制码位:以Unicode 码位对数据进行比较或排序。对于非 Unicode 数据则使用二进制排序相同的比较方式对已排序的 SQL Server 数据进行比较的应用程序不必重新对数据进行排序。//提高性能。

区分大小写:如果未选择此选项,则 SQL Server 认为字母的大小写形式对于排序目的而言是相同的。

区分重音: 如果未选择此项,在排序时,SQL Server 将把字母的重音形式和非重音形式视为相同。

区分假名: 如果未选择此选项,则 SQL Server 认为片假名字符和平假名字符对于排序目的而言是相等的。

区分全半角:如果未选择此项,在排序时,SQL Server 将把同一字符的单字节形式和双字节形式视为相同。

Query Ex:
-------------------------------------------------
SELECT * FROM tablename
WHERE colname='Value'
COLLATE Chinese_PRC_CS_AI
SELECT * FROM tablename
ORDER BY colname COLLATE Chinese_PRC_CS_AI ASC附: Windows 系统的默认排序规则
-----------------------------------------------------------------------------------------------------
Windows 系统区域设置    LCID(区域设置 ID)    默认的 SQL 排序规则                       Code page(代码页)
中文(台湾)             0x30404              Chinese_Taiwan_Bopomofo_CI_AS        950
中文(香港特别行政区)   0xc04                Chinese_Hong_Kong_Stroke_90_CI_AS    950
英语(香港特别行政区)   0x3c09               Latin1_General_CI_AS                 1252
英语(英国)             0x809                Latin1_General_CI_AS                 1252
英语(美国)             0x409                SQL_Latin1_General_CP1_CI_AS         1252
日语(Unicode)         0x10411              Japanese_Unicode                     932
日语                     0x411                Japanese_CI_AS                       932
朝鲜语(扩展 Wansung) 0x0412               Korean_Wansung_CI_AS                 949
....                  ....                 ....                                 ....
TIP:使用 SELECT * FROM fn_helpcollations() 检索
TIP:如果未指定Windows 排序规则名称,则为创建的所有数据库分配默认排序规则 Latin1_General。

附: SQL Server 2005 版本更新以下排序规则
旧排序规则名称                新排序规则名称
-----------------------------------------------------
日语                          Japanese_90
中文                          Chinese_PRC_90
Chinese_PRC_Stroke        Chinese_PRC_Stroke_90
Chinese_Taiwan_Bopomofo   Chinese_Taiwan_Bopomofo_90
Chinese_Taiwan_Stroke     Chinese_Taiwan_Stroke_90
朝鲜语                        Korean_90

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值