无法解决 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.
工作中,从国外得到一个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",重新导入外来备份文件,大功告成!
转: http://www.blogjava.net/zolly/archive/2010/06/21/324024.html
无法解决 equal to 操作中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突