ALTER SQL Server 2008 R2中的复制列.合并复制

Tha*_*kur 2 sql-server replication sql-server-2008 merge-replication

我想改变表中的StudentPerformance

要改变的列是 -

StudentName varchar(50) to StudentName varchar(100)
Percentage decimal(18,0) to Percentage decimal(18,2)
Run Code Online (Sandbox Code Playgroud)

它配置为合并复制.

  • 它会使我当前的快照成为现实吗?
  • 我是否必须重新初始化所有订阅?
  • 它会更新表中的所有记录吗?当我运行alter语句时它会增加复制流量吗?

Bra*_*ams 5

您需要使用发布服务器上的ALTER TABLE ALTER COLUMN语法执行此操作.默认情况下,架构更改将在下一次同步时传播,发布属性@replicate_ddl必须设置为true.大多数情况下不需要新快照或重新初始化.

例如,我可以通过在发布数据库上执行将我的SalesLT.Customer Title列从nvarchar(8)null更改为nvarchar(10)null:

ALTER TABLE SalesLT.Customer ALTER COLUMN Title NVARCHAR(10) NULL 
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,架构更改将在下一次同步时复制,在发布数据库上进行架构更改时会涉及一些例外.