从表中获取新记录和修改记录

时间:2011-10-05 21:05:40

标签: sql-server-2008

我是MS SQL的新手。我有2个表,一个有数据,另一个跟踪已处理的记录(日志表)。我想获取新记录,即日志表中不存在的记录以及上次提取后修改的记录。

我在日志表中存储从数据表中获取的日期,更新日期和主键。

目前我正在使用UNION这样做。第一个查询获取新记录和第二个获取的已修改记录。这是否是正确的方法,或者有更好的方法。

提前致谢。

2 个答案:

答案 0 :(得分:0)

我认为UNION实际上是获取此数据的最佳方式,特别是如果您可以在每个select语句上使用索引

答案 1 :(得分:0)

尝试这样的事情:

select id, updatedDate
from YourDataTable
except
select id, updatedDate
from YourLogTable

EXCEPT返回两个查询中不包含的行。 INTERSECT恰恰相反。

你也可以使用MERGE,但在我看来,最简单的赌注是通过EXCEPT