存在排序规则问题的SQL查询



我正在尝试比较测试实例和活动实例上视图的数据结果。两个实例都在同一台服务器上。

我已经在它们之间创建了一个链接,以便在它们之间进行查询,但我收到了一个排序规则错误-无法解决EXCEPT操作中"SQL_Latin1_General_CP1_CI_AS"one_answers"Latin1_General_CI_AI"之间的排序规则冲突。

我试图使用这个查询来比较结果,因为它们应该是来自两个实例的相同结果:

SELECT * FROM (SELECT * FROM 
INSTANCE1.dbo.View1) as TEST
EXCEPT
SELECT * FROM (SELECT * FROM 
[SERVERINSTANCE2].Database.dbo.View1) as LIVE

我尝试过用CTE包装查询,也尝试过指定默认排序规则,但我所尝试的一切都不起作用。

有没有一种方法可以在不同的实例上查询这两个视图来比较结果,而无需创建临时表,也无需让SQL忽略冲突?

非常感谢你,我感谢你的帮助。

错误消息告诉您问题是什么,但不知道它属于哪一列或哪几列,因为您使用select *,所以我也不知道列名是什么。您需要识别那些存储字符串的表中的列,然后强制使用相同的排序规则,我认为(未经测试(如下:

SELECT stringcol 
FROM (
SELECT stringcol collate  SQL_Latin1_General_CP1_CI_AS 
FROM INSTANCE1.dbo.View1) as TEST
EXCEPT
SELECT stringcol 
FROM (SELECT stringcol collate  SQL_Latin1_General_CP1_CI_AS 
FROM [SERVERINSTANCE2].Database.dbo.View1
) as LIVE

因此,您需要指定列,还需要指定用于字符串列的排序规则。

最新更新