我可以创建一个触发器来触发另一个触发器吗?

时间:2019-10-23 10:57:33

标签: sql-server

我有2个表,表A和表B。我在A上有一个触发器,输入是表B的列。那么,当我更新表A时会发生什么:表B也会被更新吗?

如果我也想更新表B,该怎么办?

1 个答案:

答案 0 :(得分:2)

完全基于您的示例(如果我理解正确),这听起来像是您在UPDATE级联上指定的外键关系。

一些示例代码:

ALTER TABLE [dbo].[Foo]  WITH CHECK ADD  CONSTRAINT [FK_FooBar] FOREIGN KEY([BarID])
REFERENCES [dbo].[Bar] ([BarID])
ON UPDATE CASCADE

在dbo中对BarID进行编辑。Foo表也迭代到dbo.Bar中引用的BarID字段

但是,如果我们使用触发器,则无法从触发器内部显式触发触发器。但是,您可以通过满足触发器条件来执行使触发器触发的操作。并且,如果将服务器选项设置为默认(默认为true)以允许触发器激活其他触发器,则将执行辅助触发器。

请注意,该选项仅适用于AFTER触发器,最多可以“链接” /嵌套32次。而不是INSTEAD OF触发器。

Msdn文章:

相关问题