none
在复制环境中 修改字段时出错! RRS feed

  • 问题

  • WIN2003   SQL2005  都是企业版

    发布服务器 和 分发 服务器 都是 SQL2005+SP3

    订阅服务器  有的是 SQL2005+SP2     有的是 SQL2005+SP3

    执行命令:alter table productatt alter column aftersale varchar(max)

    原字段类型是: varchar(300)

    消息 4928,级别 16,状态 1,第 1 行
    无法更改列 'aftersale',因为它是 'REPLICATED'。

    2009年11月2日 4:47

答案

  • Enable 'replicate schema change' in the publication first.
    2009年11月2日 4:51
  • 和提示信息的意思一样,默认已发布的列是不能更改的。最初设置的方法你可以参考rmiao说的。
    对于现有的发布,你可以考虑用下面的步骤:
      1.sp_repldropcolumn 
      2.修改数据类型
      3.sp_repladdcolumn
    不过sp_repldropcolumn已不推荐使用此存储过程,支持它主要是为了能够向后兼容。楼主自己斟酌一下。
     
    2009年11月2日 5:10
    版主
  • 理论上来说, 将对应 publication 中要改的表的'replicate schema change' 设置为 true 就可以了

    之前有遇到2000升级到20005的为出现这样的问题, 不管怎么设置, 甚至把 replication 拿掉都改不了, 解决的办法是把整个 db 的同步都拿掉重建就好了

    整个db的同步都去掉, 可以直接用语句: sp_replicationdboption '库名', 'publish', false

    2009年11月3日 4:45
  • 一般对于这种问题, 建议从小到大的做
    先确定选项是否正确, 如果不正确, 先改
    如果改了不行, 则把这张表从 replication 中去掉, 再改(这样要手工改订阅表)
    如果还是不行, 那就是终极办法, 整个 db 的都重建
    2009年11月3日 4:46

全部回复

  • Enable 'replicate schema change' in the publication first.
    2009年11月2日 4:51
  • 和提示信息的意思一样,默认已发布的列是不能更改的。最初设置的方法你可以参考rmiao说的。
    对于现有的发布,你可以考虑用下面的步骤:
      1.sp_repldropcolumn 
      2.修改数据类型
      3.sp_repladdcolumn
    不过sp_repldropcolumn已不推荐使用此存储过程,支持它主要是为了能够向后兼容。楼主自己斟酌一下。
     
    2009年11月2日 5:10
    版主
  • 但是我进行 ALTER TABLE productatt ADD  createdate INT 
    是可以成功的


    我另外又看一下 订阅选项, 复制构架 的值 是 True
    2009年11月2日 9:20
  • Sounds data type issue then.
    2009年11月2日 18:08
  • 樓主是在發佈服務器上更新還是訂閱服務器。
    訂閱方式是?
    ROY WU(吳熹)
    2009年11月3日 1:37
    版主
  • 理论上来说, 将对应 publication 中要改的表的'replicate schema change' 设置为 true 就可以了

    之前有遇到2000升级到20005的为出现这样的问题, 不管怎么设置, 甚至把 replication 拿掉都改不了, 解决的办法是把整个 db 的同步都拿掉重建就好了

    整个db的同步都去掉, 可以直接用语句: sp_replicationdboption '库名', 'publish', false

    2009年11月3日 4:45
  • 一般对于这种问题, 建议从小到大的做
    先确定选项是否正确, 如果不正确, 先改
    如果改了不行, 则把这张表从 replication 中去掉, 再改(这样要手工改订阅表)
    如果还是不行, 那就是终极办法, 整个 db 的都重建
    2009年11月3日 4:46
  • 之前我的库 都是SQL2005+SP2  那个时候是正常的,后来升级SP3 ,因为涉及的库太多,所以只升级了一部分服务器,才出现了这种问题。 



    用sp_helparticle  查看发布表的设置: schema_option  值为: 0x000000000803509F
    2009年11月3日 9:31
  • 在发布服务器上 修改字段  订阅方式是事务复制
    2009年11月3日 10:19
  • Ensure you upgrade distributor first.
    2009年11月3日 17:18