SQL Server 复制触发器

Lia*_*iam 5 sql-server replication triggers sql-server-2008

我需要创建一个 SQL Server 数据库,它将通过某种复制机制从另一个数据库接收更新。我需要编写插入、更新和删除触发器,这些触发器将在复制发生时执行。

我有触发器方面的经验,但没有复制方面的经验。

我应该使用事务复制还是合并复制,或者这很重要吗?

设计为在执行简单 SQL 插入语句时运行的触发器也会在复制发生时运行吗?

Lia*_*iam 5

MSDN 上的 CREATE TRIGGER语法:

CREATE TRIGGER
...
[ NOT FOR REPLICATION ] 
Run Code Online (Sandbox Code Playgroud)

这表明在复制上执行是触发器的默认行为,并且可以通过指定 来禁用NOT FOR REPLICATION


Joh*_*som 4

这得看情况。

如果您打算应用的更新是独立表,即给定表的所有数据仅来自发布者,那么您可以使用事务复制。

另一方面,如果您希望将表内容(即订单表)与在两个站点下达的订单结合起来,那么您可能需要考虑使用合并复制。

关于触发器,有一个“不用于复制”配置,您可以应用它来控制它们的行为。请参阅以下文章以供参考。

http://msdn.microsoft.com/en-us/library/ms152529.aspx

干杯,约翰