2

StudentPerformanceテーブルの列を変更したい

変更する列は -

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

マージ レプリケーション用に構成されています。

  • 現在のスナップショットは不要になりますか?
  • すべてのサブスクリプションを再初期化する必要がありますか?
  • テーブル内のすべてのレコードが更新され、alter ステートメントを実行するとレプリケーションのトラフィックが増加しますか?
4

1 に答える 1

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 

ほとんどの場合、スキーマの変更は次の同期でレプリケートされます。一部の例外については、 パブリケーション データベースでスキーマを変更する で説明されています。

于 2012-03-15T06:27:03.510 に答える