2

我想更改表中的StudentPerformance

要更改的列是 -

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

它被配置为合并复制。

  • 它会使我当前的快照过时吗?
  • 我必须重新初始化所有订阅吗?
  • 它会更新表中的所有记录,并且在我运行 alter 语句时会增加复制流量吗?
4

1 回答 1

5

您需要在 Publisher 中使用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 

在大多数情况下,架构更改将在下一次同步时复制出来,在发布数据库上进行架构更改中涵盖了一些例外情况。

于 2012-03-15T06:27:03.510 回答