SQLServer 2005:t-sql暂时禁用触发器

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (60)

是否可以禁用一批命令的触发器,然后在批处理完成时启用它?

我确信我可以放弃触发器并重新添加它,但我想知道是否有另一种方式。

提问于
用户回答回答于
DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]

接着是逆:

ENABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
用户回答回答于

如果你确实按照马特的代码,一定要记得重新启动触发器。并且记住,禁止触发器在每个人关闭时插入,更新或从表中删除,而不仅仅是针对你的进程,所以如果必须完成,那么在数据库最不活跃的时间内(并且最好在单用户模式下)。

如果需要这样做来导入大量数据,那么请考虑批量插入不触发触发器。但是在批量插入之后,你的过程将不得不通过触发触发器来修复引入的任何数据完整性问题。

扫码关注云+社区

领取腾讯云代金券