无法解决 equal to 操作中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突。

Cannot resolve the collation conflict between SQL_Latin1_General_CP1_CI_AS and Finnish_Swedish_CI_AS in the equal to operation.

网上有很多解决办法,但基本上都要改动SQL语句。

工作中,从国外得到一个MS SQL Server 2005的备份文件,打算把他还原到本地服务器使用里面的数据。

本地操作系统是MS Windows XP Professional 英文版,安装了MS SQL Server 2005 开发版,还原数据库后,运行数据出现错误如下:
“无法解决 equal to 操作中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突。”

检查数据库发现:SQL Server 2005服务器的排序规则是"Chinese_PRC_CI_AS",而数据库的排序规则是"SQL_Latin1_General_CP1_CI_AS",在网上查询得知,原因是这两种排序规则不统一所致。我尝试过两种方法让他们统一,但结果都无效:
1。 更改数据库的排序规则为"Chinese_PRC_CI_AS"。通过SQL Server Management Studio图形界面Property-Options-Collaction或SQL语句“ALTER DATABAS [DBName] COLLATE Chinese_PRC_CI_AS”更改无效。
2。 重构数据库“setup.exe /qn INSTANCENAME=SQL2005 REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=sa2005 SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS” 方法无效。

后来研究了很多种方法,如下载SQL Server 2005企业版安装,但是企业版不适合安装在XP Professional系统上,以失败告终。

最后实在没办法,决定在此重装SQL Server,推测原因最可能还是本地系统使用了中文的排序规则,必须让本Server的地排序规则安装的时候就设置成"SQL_Latin1_General_CP1_CI_AS",即在纯英文操作系统下安装SQL Server 2005,后来实验成功。具体方法如下:
1。 尽管我的操作系统是XP系统,但是“区域语言设置”中全部设置为中文了,当前系统和中文操作系统无异。要让SQL Server 2005顺利安装,需要将所有“区域语言设置”都切换成英语(美国),这个在中文操作系统中也应该有效。
2。 安装MS SQL Server 2005,到“排序规则设置”界面时,系统默认选择的是以下拉框的形式选择排序规则的选项,英文状态下应该默认是“Latin1_General”,切忌不要选择这个排序规则,需要选择的是第二个单选框:SQL排序规则(用于确保与旧版本的SQL Server兼容) 这个选项,在列表中选择“字典顺序,不区分大小写,用于1252字符集。”就ok了,这就是传说中的"SQL_Latin1_General_CP1_CI_AS"字符集,即英文字符集。

SQL Server安装好后,打开SQL Server Management Studio界面查看Server的排序规则,确认为"SQL_Latin1_General_CP1_CI_AS",重新导入外来备份文件,大功告成!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值