Ms Sql插入触发器以影响其他表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ms Sql插入触发器以影响其他表相关的知识,希望对你有一定的参考价值。
当table b
插入时,我试图把table a
值,但没有任何影响table b
。它就像没有trigger
。你有什么建议吗?我试过下面但没有结果。
alter trigger triggername on tablea after insert as
begin
update tablea set valuetablea_a = valuetablea_b where id = (select distince id from inserted)
end
begin
update tableb set valuetableb_a = (select valuetablea_a from tablea where id = (select distincd id from Inserted))
where date = (select distinct date from Inserted)
end
答案
试试这个:
ALTER TRIGGER triggername ON tablea AFTER INSERT AS
BEGIN
UPDATE a
SET
valuetablea_a = I.valuetablea_b
FROM tablea A
INNER JOIN inserted I
ON A.Id = I.Id
UPDATE B
SET
valuetableb_a = A.valuetablea_a
FROM tableb B
INNER JOIN tablea
ON 1=1 AND EXISTS
(
SELECT 1 FROM inserted WHERE ID = A.ID AND [Date] = B.DATE
)
end
在第一次更新中,您将提供此功能
update tablea set valuetablea_a = valuetablea_b
这意味着从TableA更新已更新的每一行的值valuetablea_b到valuetablea_a的值。而不是从Updated valuetablea_b列获取值
第二次更新通过匹配更新记录中的Id和Date文件来更新TableB.valuetableb_a中的值
以上是关于Ms Sql插入触发器以影响其他表的主要内容,如果未能解决你的问题,请参考以下文章