I'll be back!

  Focus on BPM, celebrate PegaRULES Process Commander (PRPC)
posts - 76, comments - 161, trackbacks - 0, articles - 2
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

日历

<2011年12月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

公告

PegaRULES Process Commander Pega Lead System
Architect
PegaRULES Process Commander Pega Senior System
Architect
PegaRULES Process Commander Pega System Architect
Sun Certified Java Programmer Sun Certified Java
Programmer
Cognizant Certified PRPC System Architect V4.2 Cognizant Certified
Pega System Architect
V4.2, CoreJava
Macromedia Certified Web Designer Macromedia Certified
Web Designer
Email:
shzolly@gmail.com

友情链接

搜索

  •  

最新评论

无法解决 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",重新导入外来备份文件,大功告成!


评论

# re: 无法解决 equal to 操作中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突  回复  更多评论   

2010-06-21 10:48 by 18傲骨中文
数据库就是令人头大

# re: 无法解决 equal to 操作中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突  回复  更多评论   

2010-07-14 08:49 by MICKLI
ALTER DATABASE [DBName] COLLATE Chinese_PRC_CI_AS需要在单用户模式下执行

ALTER DATABASE [DBName] SINGLE_USER WITH ROLLBACK IMMEDIATE;

# re: 无法解决 equal to 操作中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突  回复  更多评论   

2011-12-28 11:01 by stalwartwill
晕,现在我的机器上需要用两个数据库,但两个数据库需要的排序规则不一样。。。。

# re: 无法解决 equal to 操作中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突  回复  更多评论   

2014-10-20 18:01 by 勇敢的心
FROM A INNER JOIN
B ON (A.CODE BETWEEN B.From collate SQL_Latin1_General_CP850_BIN AND B.To collate SQL_Latin1_General_CP850_BIN )
AND (A.[NO] BETWEEN B.From collate SQL_Latin1_General_CP850_BIN AND B.To collate SQL_Latin1_General_CP850_BIN)

字段后面加上更改后的排序规则即可
collate SQL_Latin1_General_CP850_BIN

只有注册用户登录后才能发表评论。


网站导航: