无法解决UNION ALL运算符中“SQL_Latin1_General_CP1_CI_AS”和“Arabic_100_CI_AS_KS_WS”之间的排序规则冲突

时间:2017-11-04 07:10:45

标签: sql-server

我需要数据库中的一个数据库在我的服务器中,另一个在另一个服务器中,我刚刚读取它的权限,只能从表中选择数据。

现在我已经制作了2个视图,第一个视图来自我的数据库,它的名字是“qryTransmittals_Lines_with_CT_CS”

和第二个视图获取它,来自其他服务器和其他数据库的s数据是(qryTqLines)

现在我想结合两个查询中的所有数据,但我收到错误:

    Cannot resolve collation conflict between "SQL_Latin1_General_CP1_CI_AS" 
   and "Arabic_100_CI_AS_KS_WS" in UNION ALL operator occurring in SELECT 
 statement column 8.



  SELECT qryTqLines.*
 FROM qryTqLines

 UNION ALL

 SELECT qryTransmittals_Lines_with_CT_CS.*
 FROM qryTransmittals_Lines_with_CT_CS;

我检查了我的服务器中的表的排序规则是(SQL_Latin1_General_CP1_CI_AS)和另一个表,我没有权限修改表的设计。

请帮助我解决问题。

1 个答案:

答案 0 :(得分:0)

正如我提供的链接和OP解决了他的问题,所以从未来读者提供的链接发布一些代码

必须使两个列具有相同的Collat​​e,以便我们进行比较。 1A。这里我们将search.cat_id的整理更改为整理来自Latin1_General_CI_AS的SQL_Latin1_General_CP1_CI_AS

SELECT     search.*
FROM         categories INNER JOIN search 
ON categories.cid  = search.cat_id collate SQL_Latin1_General_CP1_CI_AS

OR 1B。这里我们从collat​​e SQL_Latin1_General_CP1_CI_AS

将categories.cid的collat​​e更改为Latin1_General_CI_AS
SELECT     search.*
FROM         categories INNER JOIN search 
ON categories.cid collate Latin1_General_CI_AS = search.cat_id

参考链接

http://www.ashishblog.com/how-to-resolve-the-collation-conflict-and-how-to-check-collate-in-sql-server/