触发器 - FOR/AFTER/INSTEAD OF 的差异
Trigger - Difference in FOR/AFTER/INSTEAD OF
我需要在触发器上重建以下部分:
{ FOR | AFTER | INSTEAD OF }
所以如果触发器有“instead of
”,它可能是 0 或 1:
SELECT
is_instead_of_trigger
FROM sys.triggers
Where object_id = Object_Id ('')
如果特定触发器有 for
或 after
,我该如何解决?
我相信 after 和 for 是一回事。
它要么代替,is_instead_of_trigger 将有 1 作为值。或 (FOR | AFTER) 为 0.
对于 |后
AFTER 指定仅当触发 SQL 语句中指定的所有操作都已成功执行时才触发 DML 触发器。所有引用级联操作和约束检查也必须在此触发器触发之前成功。
当 FOR 是指定的唯一关键字时,AFTER 是默认值。
不能在视图上定义 AFTER 触发器。
有两种触发器,
Instead Of
触发而不是触发操作的触发器
After or For
在触发操作后触发的触发器。
目录视图 sys.triggers
的列 is_instead_of_trigger
将告诉您是否是一个 Instead of 触发器,如果值 0
则它是 For or After Trigger
,如果值1
那么它就是一个 Instead of Trigger
我需要在触发器上重建以下部分:
{ FOR | AFTER | INSTEAD OF }
所以如果触发器有“instead of
”,它可能是 0 或 1:
SELECT
is_instead_of_trigger
FROM sys.triggers
Where object_id = Object_Id ('')
如果特定触发器有 for
或 after
,我该如何解决?
我相信 after 和 for 是一回事。
它要么代替,is_instead_of_trigger 将有 1 作为值。或 (FOR | AFTER) 为 0.
对于 |后 AFTER 指定仅当触发 SQL 语句中指定的所有操作都已成功执行时才触发 DML 触发器。所有引用级联操作和约束检查也必须在此触发器触发之前成功。 当 FOR 是指定的唯一关键字时,AFTER 是默认值。 不能在视图上定义 AFTER 触发器。
有两种触发器,
Instead Of
触发而不是触发操作的触发器After or For
在触发操作后触发的触发器。
目录视图 sys.triggers
的列 is_instead_of_trigger
将告诉您是否是一个 Instead of 触发器,如果值 0
则它是 For or After Trigger
,如果值1
那么它就是一个 Instead of Trigger