我正在尝试将一些数据从一个表插入到另一个表中,但我想防止插入重复的行。我目前有以下查询:
INSERT INTO Table1
(
Table1Col1,
Table1Col2,
Table1Col3,
Table1Col4,
Table1Col5
)
SELECT
Table2Col1,
Table2Col2 = constant1,
Table2Col3 = constant2,
Table2Col4 = constant3,
Table2Col5 = constant4
FROM Table2
WHERE
Condition1 = constant5
AND
Condition2 = constant6
AND
Condition3 = constant7
AND
Condition4 LIKE '%constant8%'
我不知道的是,我试图从 Table2 插入 Table1 的行可能已经存在,我想防止这种可能的重复发生并跳过插入,然后继续插入下一个唯一行。
我已经看到我可以使用 WHERE NOT EXISTS 子句并使用 INTERSECT 关键字,但我不完全了解如何将其应用于我的特定查询,因为我只想使用 Table2 中的一些选定数据,然后使用一些常量值插入表 1。
编辑:
我应该补充一点,从 TableCol2 到 TableCol5 的列实际上并不存在于结果集中,我只是在返回的 Table2Col1 旁边填充这些列。