我是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
。