合并复制中不会复制存储过程

3

我正在使用合并方式复制数据库,在这个过程中遇到了一个问题:如果开发人员在源数据库上更改存储过程,更改将不会被推送到复制的数据库。 Replicate schema changes设置为True。

请问为什么更改不会被复制?在启动复制之前,我进行了快照。开发人员声称它过去曾经有效,但我持怀疑态度,因为我认为这是不可能的。


你在说哪个数据库管理系统? - user330315
SQL Server 2008 R2 - undefined
1个回答

4

在合并复制中,

将Replicate schema changes设置为TRUE意味着合并表的DDL更改正在被复制(例如添加/删除列)。

其他对象(如视图、存储过程、函数等)的更改永远无法使用合并复制进行复制。


如何将一个过程复制到另一个数据库中? - undefined
1
坏问题。我在尝试手动更改过程时遇到了这个错误。数据定义语言(DDL)命令无法在订阅者上执行。DDL命令只能在发布者上执行。在重新发布层次结构中,DDL命令只能在根发布者上执行,而不能在任何重新发布的订阅者上执行。 模式更改在内部复制过程执行期间失败。有关纠正操作,请参阅此错误消息附带的其他错误消息。 事务在触发器中结束。批处理已中止。 - undefined
这个答案已经过时很久了。自从SQL Server 2016以来,存储过程的合并复制已经得到支持:“发布存储过程:所有类型的复制都允许您复制存储过程定义... 对存储过程的更改将被复制到订阅者。”https://learn.microsoft.com/en-us/sql/relational-databases/replication/publish/publish-data-and-database-objects?view=sql-server-2016#publishing-stored-procedures - undefined
注意:我刚刚在我仍在使用的2012版本上进行了一次测试,并确认存储过程更改的合并复制也在该版本下正常工作。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接