如何在多表上触发触发器?

时间:2015-11-06 11:37:09

标签: sql-server

是否知道是否可以在多个表上创建一个触发器。我的意思是:

假设有3个表X,Y,Z。 我想在表A中插入一行,用于任何X,Y,Z表上的任何UPDATE,INSERT或DELETE操作。

2 个答案:

答案 0 :(得分:0)

你必须像每个表一样制作每个触发器,没有其他解决方案:

   CREATE TRIGGER trig_X_changes
           ON X
           FOR INSERT, UPDATE, DELETE

   CREATE TRIGGER trig_Y_changes
           ON Y
           FOR INSERT, UPDATE, DELETE
....

答案 1 :(得分:0)

您不能在三个不同的表上创建一个触发器,但如果您想合并代码,可以将触发器代码(插入到表A中)放入存储过程,并在每个X Y&上创建一个触发器。只调用存储过程的Z表。

请注意,如果存储的proc代码需要访问inserted或deleted表,则需要将它们作为参数传递给触发器中的存储过程。