スキーマの変更をレプリケートする方法 (レプリケーション Transact-SQL プログラミング)

パブリッシュされたアーティクルに対し、次のようなスキーマ変更を行った場合、変更内容が既定で MicrosoftSQL Server サブスクライバに反映されます。

  • ALTER TABLE

  • ALTER VIEW

  • ALTER PROCEDURE

  • ALTER FUNCTION

  • ALTER TRIGGER

レプリケーションのストアド プロシージャを使用すると、これらのスキーマ変更をレプリケートするかどうかを指定できます。どのストアド プロシージャを使用するかは、パブリケーションの種類によって異なります。

注意注意

ALTER TABLE DROP COLUMN は、@replicate_ddl パラメータの値に関係なく、削除対象の列をパーティションに含むすべてのサブスクリプションに対して常にレプリケートされます。

スキーマ変更をレプリケートしないスナップショット パブリケーションまたはトランザクション パブリケーションを作成するには

スキーマ変更をレプリケートしないマージ パブリケーションを作成するには

スナップショット パブリケーションまたはトランザクション パブリケーションでスキーマ変更のレプリケートを一時的に無効化するには

  1. スキーマ変更のレプリケーションを伴うパブリケーションで、sp_changepublication (Transact-SQL) を実行します。このとき、@property には replicate_ddl を、@value には 0 を指定します。

  2. パブリッシュされたオブジェクトに対し、DDL コマンドを実行します。

  3. (省略可) sp_changepublication (Transact-SQL) を実行して、スキーマ変更のレプリケートを再度有効にします。このとき、@property には replicate_ddl を、@value には 1 を指定します。

マージ パブリケーションでスキーマ変更のレプリケートを一時的に無効化するには

  1. スキーマ変更のレプリケーションを伴うパブリケーションで、sp_changemergepublication (Transact-SQL) を実行します。このとき、@property には replicate_ddl を、@value には 0 を指定します。

  2. パブリッシュされたオブジェクトに対し、DDL コマンドを実行します。

  3. (省略可) sp_changemergepublication (Transact-SQL) を実行して、スキーマ変更のレプリケートを再度有効にします。このとき、@property には replicate_ddl を、@value には 1 を指定します。