SQL查询时候出现:无法解决 equal to 操作中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突问题,可以用显示转换的方法解决
COLLATE SQL_collation_name
SQL_collation_name 为SQL SERVE 排序规则名称
1、多表连接中修改排序规则方法
SELECT * FROM A JOIN B ON A.Name COLLATE Chinese_PRC_CI_AS =B.Name
2、Select中修改排序规则的方法
SELECT Name COLLATE Chinese_PRC_CI_AS FROM A
产生这个问题主要的原因,是因为两个数据库的排序规则不同而导致的。如果需要彻底解决,需要直接在数据库中修改DB的排序规则。


当在SQL查询中遇到'SQL_Latin1_General_CP1_CI_AS'和'Chinese_PRC_CI_AS'排序规则冲突时,可以使用显示转换方法解决。如在多表连接和Select语句中通过COLLATE指定所需排序规则。例如,SELECT * FROM A JOIN B ON A.Name COLLATE Chinese_PRC_CI_AS = B.Name 或 SELECT Name COLLATE Chinese_PRC_CI_AS FROM A。该问题是由于数据库间不同的排序规则设置导致的,若要永久解决,需在数据库级别修改排序规则。
2002

被折叠的 条评论
为什么被折叠?



