如果当我们在进行数据库同步的时候,若SQLserver数据库作为目标端时,我们需要将SQLserver数据库的触发器禁用。因为在同步的表A上创建有触发器,并且触发器所修改的表B也在同步范围之内,那么同步的表B可能与触发器对表B的修改产生冲突,为了避免这种情况需要在目标端SQLserver数据库禁用触发器。
(1)检查目标端的触发器:
select * from sys.objects where type='TR';
(2)查看触发器的定义:
exec sp_helptext '触发器名'
(3)查看触发器与表的信赖关系
exec sp_depends '触发器名'
(4)禁用表上的某个触发器:
ALTER TABLE 表名 DISABLE TRIGGER 触发器名
(5)禁用某个表上的所有触发器:
ALTER TABLE 表名 DISABLE TRIGGER all
(6)禁用所有表上的触发器
exec sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'