我有一个表Table_Lookup
,它每周更新一次。因此,我triggers
在该表上创建了 2,如果插入了新记录,则会触发触发器并将新数据插入另一个名为Table_Lookup_Change
.
注意:我有截至 8 月的数据,Table_Lookup
但是当触发触发器时,它只插入到 7 月的数据,它缺少一个月的数据。我从过去两周开始工作,我无法弄清楚问题所在。你们能看看我的代码吗..
我有一个表Table_Lookup
,它每周更新一次。因此,我triggers
在该表上创建了 2,如果插入了新记录,则会触发触发器并将新数据插入另一个名为Table_Lookup_Change
.
注意:我有截至 8 月的数据,Table_Lookup
但是当触发触发器时,它只插入到 7 月的数据,它缺少一个月的数据。我从过去两周开始工作,我无法弄清楚问题所在。你们能看看我的代码吗..
你的触发器有结构
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
if (exists(select 1 from deleted)) 开始。. 结尾
if (exists(select 1 from inserted left join deleted on inserted.MediaFactor_ID = deleted.MediaFactor_ID 其中 A.FLMNet 不为空,B.Media 为空,B.Year 为空,B.Month 为空,B.Factor 为null 且 B.FLMNet 为 null 且 A.FLMNet 不为 null) )根据需要开始/更新或插入。从已删除的表中过滤掉那些/
结尾