计算两个表之间的差异

时间:2013-10-14 07:20:28

标签: sql sql-server

我目前有以下代码可行。它正在比较两个完全相同但在两个独立数据库中的表,以确保它们具有相同的记录数。

我想知道是否有人看到了更好的方法来实现以下目标?

Declare @count1 int
Declare @count2 int

select @count1 = count(*) from database1.dbo.table1

select @count2 = count(*) from database2.dbo.table1

if @count1 <> @count2
begin
   insert into log table saying counts don't matc
end

2 个答案:

答案 0 :(得分:1)

真的没有更好的方法。你可以在没有变量的情况下做到这一点:

if (select count(*) from database1.dbo.table1) <> (select count(*) from database2.dbo.table1)
begin
   insert into log table saying counts don't matc
end

答案 1 :(得分:0)

如果您想知道差异的位置,可以使用它来查找数据库2中缺少的记录

SELECT *
FROM database1.dbo.table1 D1
LEFT JOIN database2.dbo.table2 D2
ON D1.id = D2.id
WHERE D2.id IS NULL