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

时间:2012-03-15 05:14:09

标签: sql-server sql-server-2008 replication merge-replication

我想更改StudentPerformance表格中的列

要更改的列是 -

StudentName varchar(50) to StudentName varchar(100)
Percentage decimal(18,0) to Percentage decimal(18,2)

它配置为合并复制。

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

1 个答案:

答案 0 :(得分: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 

在大多数情况下,架构更改会在下次同步时复制出来,Making Schema Changes on Publication Databases中会涵盖一些例外情况。