Joh*_*dan 3 sql t-sql sql-server
我有两个相同但驻留在不同服务器上的表。一个表缺少我已经验证过的一行。我正在尝试比较这些表以查找丢失的记录
经过
SELECT GUID FROM dbo.tableA
EXCEPT
SELECT GUID FROM [Server2].MyDatabase.dbo.tableA
Run Code Online (Sandbox Code Playgroud)
或者反过来
SELECT GUID FROM [Server2].MyDatabase.dbo.tableA
EXCEPT
SELECT GUID FROM dbo.tableA
Run Code Online (Sandbox Code Playgroud)
两个查询都返回零结果。我select count(*)在两张桌子上都用过,计数不同
我究竟做错了什么?
感谢您提前提供任何反馈
计数可以不同,但仍有可能except返回零行。如何?如果一个或两个表中有重复项。
这是一个可以帮助您找到差异的修改:
SELECT GUID, ROW_NUMBER() OVER (PARTITION BY GUID ORDER BY GUID) as seqnum
FROM dbo.tableA
EXCEPT
SELECT GUID, ROW_NUMBER() OVER (PARTITION BY GUID ORDER BY GUID) as seqnum
FROM [Server2].MyDatabase.dbo.tableA
Run Code Online (Sandbox Code Playgroud)