解决sqlserver数据库排序规则冲突

在跨多个数据库查询时经常会碰到数据库字符集不一致的情况,如果对两个不同字符集排序的字段进行比较操作就会遇到类似下面这个错误:

 无法解决 equal to 操作中 "Chinese_PRC_CI_AS" 和 "Latin1_General_BIN" 之间的排序规则冲突(其他字符集同理)

很多人说了解决这个问题的方法很简单,把两个字段的排序字符集调整成一致即可,但是这么做在正式环境中往往是不被允许的,

其实我们只需要在写查询语句的时候在字段后面加上一个自定义的字符排序就可以了。下面给出一个例子:

DELETE FROM a
WHERE Code in
(SELECT Code collate Chinese_PRC_CI_AS
FROM b
where ACTV_INACT = 'I'
)

posted @ 2012-12-25 15:06  吃我老拳  阅读(748)  评论(0编辑  收藏  举报