我有两个表,表A
和表B
。我在A
上有一个触发器,输入是表B
的列。那么,当我更新表A
时会发生什么:表B
也会更新吗?
如果我也想更新表B
,该怎么办?
纯粹基于您的示例(如果我理解正确的话(,这听起来像是在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中引用的BarID字段。条形
然而,如果我们使用触发器,就不能从触发器中明确地触发触发器。但是,您可以通过满足触发器条件来执行使触发器激发的操作。如果设置了服务器选项(默认为true(以允许触发器激活其他触发器,则将执行辅助触发器。
请注意,该选项仅适用于AFTER触发器,它最多可以被"链接"/嵌套32次。而不是INSTEAD OF触发器。
Msdn文章:
- https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-nested-triggers-server-configuration-option?view=sql-服务器版本15
- https://learn.microsoft.com/en-us/sql/relational-databases/triggers/create-nested-triggers?view=sql-服务器版本15