我每周更新一个名为Table_Lookup
的表。所以我在该表上创建了2 triggers
,如果插入了新记录,则触发触发并将新数据插入另一个名为Table_Lookup_Change
的表中。
注意:我在Table_Lookup
中有8月份的数据,但是当触发器被触发时,它仅插入数据,直到7月它缺少一个月的数据。我在过去的两周工作,我无法弄清楚问题。你们可以查看我的代码吗..
答案 0 :(得分:0)
您的触发器具有结构
if (exists(select 1 from deleted))
begin
.
.
end
else
begin
.
.
end
因为您有deleted
(旧值)和insert
(新值,包括那些通过UPDATE
修改的值)。
你需要做的是像
if (exists(select 1 from deleted))
begin
.
.
end
if (exists(select 1
from inserted
left join deleted on inserted.MediaFactor_ID = deleted.MediaFactor_ID
where deleted.MediaFactor_ID
)
begin
/*update or insert as needed. filtering out those from deleted table*/
end
答案 1 :(得分:0)
if(存在(从删除中选择1)) 开始 。 。 端
if(存在(选择1) 从插入 在inserted.MediaFactor_ID = deleted.MediaFactor_ID上删除了左连接 其中A.FLMNet不为空 和B.Media无效 和B.Year是空的 和B.Month是空的 和B.Factor为空 和B.FLMNet为空 和A.FLMNet不为空) ) 开始 / 根据需要更新或插入。过滤掉已删除表格中的内容 /
端