TSQL - 禁用事务中的触发器

Mas*_*ity 12 sql t-sql sql-server triggers sql-server-2008

我一直在寻找高低,我无法找到一个满意的答案.这往往归结为TRANSACTIONSQL Server中的工作原理.

基本上,这会做我认为它做的事情.

BEGIN TRAN

DISABLE [my_update_trigger] ON [my_table]

/*.. Do Some Updates ..*/

ENABLE [my_update_trigger] ON [my_table]

COMMIT TRAN
Run Code Online (Sandbox Code Playgroud)

我希望能够在表中修复一些数据,而无需运行我在桌面上的更新触发器.这是一个Web应用程序,所以我想确保如果从Web应用程序在桌面上完成更新,而我正在做我的工作,[my_update_trigger]仍然会触发Web应用程序.

Jon*_*ton 4

更新内容没问题 - 禁用启用等。

DISABLE TRIGGER [my_update_trigger] ON [my_table]

/*.. Do Some Updates ..*/

ENABLE TRIGGER [my_update_trigger] ON [my_table]
Run Code Online (Sandbox Code Playgroud)

看一下msdn页面:http://msdn.microsoft.com/en-us/library/ms189748.aspx

不过,在使其特定于会话时:我怀疑这是否可行 - 禁用/启用是 DDL 而不是 DML,即它们作用于数据库对象而不是数据。我没想到这会属于交易范围