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