首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server复制:"ALTER列“未传播到订阅服务器

Server复制:"ALTER列“未传播到订阅服务器
EN

Database Administration用户
提问于 2013-04-23 07:37:14
回答 2查看 10.7K关注 0票数 4

我们使用Server 2008 R2 SP1作为发布服务器和分发服务器,Server 2005 SP3作为订阅服务器。模式更改的复制被激活,复制已运行多年,包括频繁的模式更改(新列、新约束等)。

在发布服务器上发送了以下指令:

代码语言:javascript
复制
use myDatabase
alter table Tbl_TypeLignePaye
      alter column natureTypeLignePaye nvarchar(12)
go

字段natureTypeLignePaye最初是nvarchar(3) null

查询在主数据库上运行时没有出现错误。结果如下:

  1. 字段natureTypeLignePaye在对象浏览器中仍然显示为nvarchar(3)
  2. 列属性屏幕指示长度为nvarchar12类型。
  3. 更改未传播到订阅服务器。

知道这个数据库是怎么回事吗?

Publisher:对象浏览器窗口与属性窗口提供不一致的数据

EN

回答 2

Database Administration用户

发布于 2014-07-14 10:57:30

如果有人想在Server 2008中增加复制表的列宽,则不需要更改replicate_ddl=1的属性。只需按照给定的步骤执行即可。

  1. 开放SSMS
  2. 连接到发布服务器数据库
  3. 运行命令ALTER 表格_名字 ALTER列列_名字 varchar(22)
  4. 它将增加varchar(x)到varchar(22)的列宽,并在订阅服务器上看到相同的更改(事务被复制)。所以不需要重新初始化复制。

希望这能帮助所有正在寻找它的人。

票数 4
EN

Database Administration用户

发布于 2013-04-30 09:08:47

我并不是说我们知道发生这种情况的原因,但是DDL指令在我们停止\重新启动发布服务器上的SQL服务后正确地分发了.

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/40660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档