我做的程序有时涉及大批量地将其他数据源的数据合并到Sqlserver数据库,这时候想不让触发器运行,否则回非常耗时,十分容易导致超时。
特请教:
该怎么暂时屏蔽触发器呢?
如能屏蔽,如何恢复正常呢?
禁用:
ALTER TABLE trig_example DISABLE TRIGGER trig1
GO
恢复:
ALTER TABLE trig_example ENABLE TRIGGER trig1
GO
--禁用某个表上的所有触发器
ALTER TABLE 你的表 DISABLE TRIGGER all
--启用某个表上的所有触发器
ALTER TABLE 你的表 enable TRIGGER all
--禁用所有表上的所有触发器
exec sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'
--启用所有表上的所有触发器
exec sp_msforeachtable 'ALTER TABLE ? enable TRIGGER all'