我正在尝试比较测试实例和活动实例上视图的数据结果。两个实例都在同一台服务器上。
我已经在它们之间创建了一个链接,以便在它们之间进行查询,但我收到了一个排序规则错误-无法解决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
因此,您需要指定列,还需要指定用于字符串列的排序规则。