Sam*_*mer 5 sql t-sql sql-server-2008
我在SQL Server 2008中有2个相同的表,一个是我的应用程序不断使用的"实时"表.我在白天定期提取新记录并将它们插入"临时"表中,我需要从中获取新记录并插入到Live表中.我不希望插入任何重复项,以防一些记录重叠.我需要查看10列以查看是否存在相同的记录,我已经查看了一些TSQL示例,但到目前为止还没有工作,我还考虑过处理dupes而只是报告DISTINCT值但DISTINCT一个为一条记录工作,我需要它为10工作.任何建议?
谢谢,山姆
这是一个理想的用例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>...)