我可以在同一个触发器中禁用sql触发器吗?

时间:2015-01-09 14:16:23

标签: sql-server triggers

我可以在触发器执行期间在同一触发器内禁用SQL触发器吗?

我正在尝试通过触发器更新列,该触发器会在更新同一列时触发 。 但行不同。

例如,如果column1的row1发生更改,则column1的第2行和第3行将根据row1.column1值发生更改。

如果我的触发器在第一次更新row1.column1时触发,那么我的触发器将触发并更新同一列的其他行。随着列值再次更新,触发器再次触发。这可能会创建一个永无止境的循环(我假设)

所以我想在执行相同触发器期间禁用触发器。我不想使用INSTEAD OF触发器,因为根据一些其他数据库事务,可能会回滚update语句。 我试过了

ALTER TABLE tablename DISABLE TRIGGER triggername
ALTER TABLE tablename ENABLE TRIGGER triggername

禁用并启用触发器,但在执行更新状态时出现错误

消息2801,级别16,状态1,过程触发器,第47行 对象'Triggername'的定义自编译后已更改。 声明已经终止。

先谢谢你的帮助..

0 个答案:

没有答案
相关问题