none
关于复制分发后订阅数据库上的自增长列标识规范不用于复制选项问题 RRS feed

  • 问题

  • 发布数据库表中自增长列的不用于复制选项选了否,但是订阅数据库上同一列的不用于复制选项变回是了。请问这个有解决办法吗?


    2014年1月10日 9:23

全部回复

  • You should make same change on both publisher and subscriber.
    2014年1月10日 13:59
  • 你用的什么复制类型?如果是事物复制的话应该没问题啊。


    Please Mark As Answer if it is helpful.

    2014年1月10日 23:39
  • 事务复制,我在两台备用服务器上都试过了。一台win2003+sql2005,一台win08r2+sql2008r2。订阅后不用于复制选项都自动变回是。如果每次复制后都需要手动在订阅数据库上一张张表去修改那太麻烦了。

    2014年1月13日 1:16
  • 难道没有两边自动同步不用于复制选项这一选项的方法吗?
    2014年1月13日 1:20
  • Copy db from publisher to subscriber then set replication.
    2014年1月13日 1:24
  • 关键就是set replication这一步。如果我有1000个自增长列需要设置那太花时间了。有没有批量操作的方法。
    2014年1月13日 1:52
  • 难道sql都发展到2008r2版本了还不支持批量修改表列属性的方法吗?
    2014年1月13日 1:55
  • 这个是Identity列不用于复制的语法:

    CREATE TABLE authors ( COL1 INT IDENTITY (1, 1) NOT FOR REPLICATION PRIMARY KEY )

    所以你可以AlterTable把具有Identity列的批量修改为NOT FOR REPLICATION就可以了。 


    Please Mark As Answer if it is helpful.

    2014年1月13日 2:52
  • 代码可以参考下面的:

    This script turns it YES for all tables that have an identity column.

    EXEC sp_msforeachtable @command1 = ' declare @int int set @int =object_id("?") EXEC sys.sp_identitycolumnforreplication @int, 1'


    Please Mark As Answer if it is helpful.

    2014年1月13日 2:58
  • 难道sql都发展到2008r2版本了还不支持批量修改表列属性的方法吗?
    You can post your wish list in https://connect.microsoft.com/SQLServer/Feedback.
    2014年1月13日 3:17