我需要创建一个SQL Server数据库,它将通过某个复制机制从另一个数据库接收更新。我需要编写插入,更新和删除触发器,这些触发器将在此重新发生时执行。
我有触发器的经验但没有复制经验。
我应该使用Transactional还是Merge复制,还是重要?
设计为在执行简单的SQL插入语句时运行的触发器是否也会在复制时运行?
这得看情况。
如果要应用的更新是针对隔离的表,即给定表的所有数据仅来自发布者,则可以使用事务复制。
另一方面,如果您希望将表内容(即订单表)与订单放在两个站点上进行组合,那么您可能希望查看使用合并复制。
关于触发器,您可以应用“非复制”配置来控制其行为。请参阅以下文章以供参考。
http://msdn.microsoft.com/en-us/library/ms152529.aspx
干杯,约翰
CREATE TRIGGER syntax on MSDN:
CREATE TRIGGER
...
[ NOT FOR REPLICATION ]
这表示在复制时执行是触发器的默认行为,可以通过指定NOT FOR REPLICATION
来禁用。
使用您提供的信息很难回答您的问题。我在你的问题中添加了一些评论,要求澄清信息。
这是一篇关于MSDN的文章应该有所帮助:http://msdn.microsoft.com/en-us/library/ms152529.aspx
默认情况下,除非指定“NOT FOR REPLICATION”,否则将在复制期间触发触发器。它们的工作方式与简单的insert语句相同。
事务和合并复制是非常不同的,但两个选项的触发器行为类似。
除了触发器之外,还有一些替代选项可供您使用。