没有删除的SQL Server复制?

时间:2009-06-12 16:05:35

标签: sql-server sql-server-2005 replication

有没有办法复制sql server数据库但是没有向订阅者推送删除?

3 个答案:

答案 0 :(得分:1)

您没有提到您正在运行的SQL Server版本,但是Andy Warren写了一篇关于在SQL Server 2005中配置INSERT,UPDATE和DELETE行为的文章。您可以使用他的指示通过GUI配置它:

http://www.sqlservercentral.com/articles/Replication/3202/

答案 1 :(得分:1)

很有可能在正常复制中“干预”并“撤防”订阅方删除存储过程,但这样就无法从复制失败中恢复。如果复制尝试恢复,则可能需要重新初始化,这将丢弃复制代理认为已删除的任何“陈旧”数据。

另一种方法是使用正常复制,并使用在订阅者数据库中的所有表上生成插入和更新触发器的脚本,该脚本将该数据插入/更新到第三个数据库中。这样第三个数据库将收集所有存在的数据,如果需要,第二个数据库可以重新初始化它的订阅(当你这样做时,只记得批量插入不调用插入触发器并检查新数据和将它添加到第三个DB),第一个DB不必执行触发器的额外工作。

答案 2 :(得分:0)

这样做....放下文章。在相应的数据库中创建一个新的storedprocedure,它模仿系统存储过程(sp_del ...)并包含相同的参数但什么都不做。再次添加文章...并将文章属性下的删除存储过程设置为您创建的新删除存储过程....

或者您可以选择不复制删除语句....我认为这有效但我没有尝试过。