TSQL DISABLE TRIGGER是否作用于调用上下文?

时间:2011-01-04 22:22:40

标签: sql-server tsql triggers

当作为TSQL批处理的一部分发出“DISABLE TRIGGER”时,它是否限定为批处理的上下文,或者对于任何其他并发查询也可能禁用触发器?

如果是后者,需要什么样的锁定才能确保仅为发出查询禁用触发器?

1 个答案:

答案 0 :(得分:5)

全局禁用。只能为单个连接禁用它。

您可以使用的一种技巧是将以下内容添加到触发器

if context_info() =  cast('disabled' as varbinary(128))
return

然后在连接中你要“禁用”使用的触发器

declare @triggerdisabled varbinary(128) = cast('disabled' as varbinary(128))

set context_info @triggerdisabled

要“重新启用”,请使用

set context_info 0x