如何控制同步期间触发器和约束的行为(复制 Transact-SQL 编程)

在同步期间,复制代理对复制表执行INSERT (Transact-SQL)UPDATE (Transact-SQL)DELETE (Transact-SQL) 语句,这可能会导致执行这些表上的数据操作语言 (DML) 触发器。 有些情况下,可能需要在同步期间防止这些触发器触发或防止约束被强制执行。 此行为取决于触发器或约束的创建方式。

防止触发器在同步期间执行

  1. 创建新触发器时,请指定 CREATE TRIGGER (Transact-SQL) 的 NOT FOR REPLICATION 选项。

  2. 对于现有的触发器,请指定 ALTER TRIGGER (Transact-SQL) 的 NOT FOR REPLICATION 选项。

防止约束在同步期间被强制执行

  • 创建新 CHECK 或 FOREIGN KEY 约束时,请在 CREATE TABLE (Transact-SQL) 的约束定义中指定 CHECK NOT FOR REPLICATION 选项。