比较具有相同列的不同表中的行

时间:2013-04-01 12:43:17

标签: sql-server-2008-express

我有2个表tbl_A和tbl_A_temp。这两个表都具有相同的模式。它们的主键不同,因为它们是标识列。有没有办法我可以比较这两个表中的两行,并了解它们是否不同。我将从tbl_A_temp插入数据到tbl_A,我需要这个比较只是为了确保我没有插入任何重复的数据主要表格。

此致 阿米特

1 个答案:

答案 0 :(得分:2)

我认为这对你有用。基本上,由于您没有要加入的主键,因此您需要在所有其他字段上执行LEFT JOIN。如果有任何不同,那么NULL检查将为真:

SELECT t.*
FROM tbl_A_temp t
   LEFT JOIN tbl_A a ON 
      t.field1=a.field1 AND t.field2=a.field2 AND ...
WHERE a.field1 IS NULL

我也看到其他人使用CHECKSUM,但我自己也遇到了问题,并发现了误报。