Sql server 复制时的SQL Server触发器
我需要创建一个SQL Server数据库,该数据库将通过某种复制机制从另一个数据库接收更新。我需要编写insert、update和delete触发器,这些触发器将在发生此复制时执行 我有触发器方面的经验,但没有复制方面的经验 我应该使用事务复制还是合并复制,还是这很重要 当执行简单SQL insert语句时,设计为运行的触发器是否也会在复制发生时运行? 这表明在复制时执行是触发器的默认行为,可以通过指定Sql server 复制时的SQL Server触发器,sql-server,sql-server-2008,triggers,replication,Sql Server,Sql Server 2008,Triggers,Replication,我需要创建一个SQL Server数据库,该数据库将通过某种复制机制从另一个数据库接收更新。我需要编写insert、update和delete触发器,这些触发器将在发生此复制时执行 我有触发器方面的经验,但没有复制方面的经验 我应该使用事务复制还是合并复制,还是这很重要 当执行简单SQL insert语句时,设计为运行的触发器是否也会在复制发生时运行? 这表明在复制时执行是触发器的默认行为,可以通过指定不用于复制来禁用该行为 如果要应用的更新是针对独立表的,即给定表的所有数据仅来自发布服务器,则
不用于复制来禁用该行为
如果要应用的更新是针对独立表的,即给定表的所有数据仅来自发布服务器,则可以使用事务复制
另一方面,如果您希望将表内容(即orders表)与两个站点上的订单合并,则您需要考虑使用合并复制
关于触发器,有一个“不用于复制”配置,您可以应用它来控制它们的行为。请参阅下面的文章以供参考
干杯,约翰用你提供的信息很难回答你的问题。我在你的问题上添加了一些评论,要求澄清信息
下面是一篇关于MSDN的文章,应该会有所帮助:
默认情况下,除非指定了“不用于复制”,否则触发器将在复制期间激发。它们的工作方式与简单insert语句相同
事务复制和合并复制非常不同,但触发器在这两个选项中的行为相似。您可以选择一些替代触发器的选项
您可以修改订阅服务器(目标)数据库上的复制过程李>
如果使用2008,您可以对订阅服务器上要“处理”的表使用更改跟踪,然后创建一个批处理过程来处理“基于集合”的数据,而不是虚拟行。例如,每X运行一次的SSIS包
复制是双向的,还是单向的?涉及多少SQL Server实例?两个方向,但如果需要,我可以用其他方式处理我这边的更改。
CREATE TRIGGER
...
[ NOT FOR REPLICATION ]