使用登台表中的记录填充实时表格

时间:2012-03-30 14:47:29

标签: sql sql-server-2008 tsql

我在SQL Server 2008中有2个相同的表,一个是我的应用程序不断使用的“实时”表。我在白天定期提取新记录并将它们插入“临时”表中,我需要从中获取新记录并插入到Live表中。我不希望插入任何重复项,以防一些记录重叠。我需要查看10列以查看是否存在相同的记录,我已经查看了一些TSQL示例,但到目前为止还没有工作,我还考虑过处理dupes而只是报告DISTINCT值但DISTINCT一个为一条记录工作,我需要它为10工作。任何建议?

谢谢, 萨姆

1 个答案:

答案 0 :(得分:5)

这是NOT EXISTS的理想用例 - 您可以根据需要查看多个条件,以确认您不会插入欺骗行为。

INSERT INTO Live
SELECT <fields>
FROM Staging s
WHERE NOT EXISTS (SELECT 1
                  FROM Live l
                  WHERE s.FieldA = l.FieldA
                  AND s.FieldB = l.FieldB
                  <all your checks here>...)