DDL语句不会在SQL上复制

时间:2015-09-18 18:02:31

标签: sql-server replication ddl

我对SQL复制没有太多经验(SQL Server 2014)。我的客户有一个由他以前的承包商创建的复制过程。它运作良好,几天前突然停止复制DDL语句。我们没有做任何与复制相关的更改。当我检查数据时,订户已收到最新数据。只有DDL语句才有问题。它使用事务复制。

当我在网上搜索时,它表示“Replicate schema changes”选项需要在Publication Properties上设置为true。在我的情况下,它已经设置为true。

我有没有解决这个问题,并且再次让DDL语句像以前一样复制?

谢谢

1 个答案:

答案 0 :(得分:3)

SQL Server Replication确实支持架构更改,但不支持所有架构更改。在您的情况下,CREATE PROCEDURE不是受支持的架构更改。为什么?它还没有文章,也没有标记为复制,因此无法复制 - 复制无法知道您是否希望复制该对象。

但是,如果您创建存储过程,然后为其创建文章,然后发出更改程序,您将看到复制的更改。

请参阅文章Make Schema Changes on Publication Databases

  

Replication支持对已发布对象的各种架构更改。当您在Microsoft SQL Server Publisher上的相应发布对象上进行以下任何架构更改时,默认情况下该更改将传播到所有SQL Server订阅服务器:

     

ALTER TABLE

     

如果启用了架构更改复制且拓扑包括SQL Server 2005或SQL Server Compact 3.5订阅服务器,则不应使用ALTER TABLE SET LOCK ESCALATION。

     

ALTER VIEW

     

更改程序

     

ALTER FUNCTION

     

ALTER TRIGGER

     

ALTER TRIGGER只能用于数据操作语言[DML]触发器,因为无法复制数据定义语言[DDL]触发器。

请确保您阅读整篇文章,充分了解可以复制的内容以及在什么情况下。