我正在进行VB加载和SSIS加载。因此,从这些加载数据插入到数据库表中。我需要查找是否有任何重复的记录插入表中。如果任何重复记录进入表中,那么我需要在插入重复记录时触发一个触发器,我需要将相同的记录插入到另一个表中。
例如,y VB load或SSIS load正在将记录插入Table1。所以我需要找到是否有任何重复的记录插入table1。如果插入,那么我需要触发一个触发器,并需要将该重复记录插入Table2。
请建议解决方案。 你的帮助真的很感激。 提前致谢
答案 0 :(得分:1)
您最好的选择是在桌面上创建INSTEAD OF INSERT
触发器。
在触发器内部,您可以检查记录是否已存在并将其插入另一个表或继续插入。
答案 1 :(得分:0)
这是一个代替触发器的例子。我假设你只想要每个副本的一个副本。 (我假设'名称'是LoadTable
中用于检测重复项的唯一密钥)
CREATE TRIGGER tCheckDupes ON LoadTable INSTEAD OF INSERT
AS BEGIN
INSERT INTO DupesTable(Name)
SELECT DISTINCT i.Name FROM INSERTED i
INNER JOIN LoadTable lt
ON lt.NAME = i.NAME;
-- Because this is an instead of trigger, you need to do the actual insert as well.
INSERT INTO LoadTable(Name)
SELECT Name FROM INSERTED i;
END