【发布时间】:2010-02-25 20:47:00
【问题描述】:
假设 ServerA.TableA 被复制(通过事务复制)到 ServerB.TableA。如果在插入或更新行时触发的 ServerB.TableA 上存在触发器,该触发器是否会在从 ServerA.TableA 复制行时触发?
【问题讨论】:
假设 ServerA.TableA 被复制(通过事务复制)到 ServerB.TableA。如果在插入或更新行时触发的 ServerB.TableA 上存在触发器,该触发器是否会在从 ServerA.TableA 复制行时触发?
【问题讨论】:
这取决于触发器的创建方式。 CREATE/ALTER TRIGGER 语句支持 NOT FOR REPLICATION 子句:
NOT FOR REPLICATION 表示 不应执行触发器 当复制代理修改 触发器中涉及的表。见Controlling Constraints, Identities, and Triggers with NOT FOR REPLICATION。
【讨论】:
当行从 ServerA.TableA 复制时,触发器会触发吗?
事务不是发送并应用到远程服务器 - 不是行吗?这会让我认为只是应用了事务,实际上并未触发触发器,而是应用了结果。
我不是这方面的专家 - 只是一个想法。
【讨论】: