MSSQL复制过程中,修改表结构改之解决办法

在MSSQL的复制过程中,如果需要修改表结构,通常认为必须删除发布订阅。但其实存在无需删除的解决办法。可以安全地添加、删除字段,甚至在不中断复制的情况下更改字段长度和类型。具体操作包括直接添加字段、删除字段以及针对单表和多表复制的不同修改方法,确保修改后能自动同步到订阅端。
 随着业务的变化,很可能当初设计的数据库表或者字段等不符合我们现在的要求,我们需要修改。修改表结构是很简单的一件事,可是该表所属的数据库进行了复制的操作的话。我们修改起来就很不方便。最常见的是以下错误。

    

     也许有人说,当初应该考虑全面一点,就不会有这种问题了,可是计划总是赶不上变化的。难道就没有办法修改了吗?(除了删除发布订阅)

     答案是肯定的,否则我也不会写此文章了。  

       注意:此方法,所有操作均不需要停止或者删除已有的数据库发布和订阅。

具体方法如下:

     添加字段:直接添加即可,不需要重新成功快照。新添加字段及数据会自动同步到订阅端。
     删除字段:直接删除即可,不需要重新生成快照。会自动将订阅端的字段一并删除。

     修改字段:如长度、类型等。

     具体分两种情况:

     第一种情况:复制的数据库只有一个表

    这种情况下,我们需要通过打开我们要修改的“发布”,然后打开“属性”,从项目中把我们要修改字段所属的表从发布除去,重新生成快照。因为只有一个表,相当于就没有发布了。因此现有的订阅会被删除。因此当修改完成后。我们需要先在订阅端将该订阅删除,然后重新订阅一下就可以了。

     第二种情况:同步多个表的数据库复制
    这种情况,更加简单。直接把需要修改的表从发布中去掉(方法同上)。直接修改就可以了。修改完之后,再把该表加入到发布中。此过程需要重新生成一下快照。修改结果会自动更新到订阅数据库。Ok了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值