スキーマ オプションを指定する方法 (レプリケーション Transact-SQL プログラミング)

テーブルまたはビューをパブリッシュするとき、パブリッシュされたオブジェクト用にレプリケートされるオブジェクトの作成オプションを制御できます。アーティクルの作成時に、レプリケーションのストアド プロシージャを使用して、スキーマ オプションをプログラムから設定できます。これらは、後で変更することもできます。アーティクルに対してオプションを明示的に指定しなかった場合、既定のオプションが定義されます。

注意

レプリケーションのストアド プロシージャを使用した場合の既定のスキーマ オプションは、Microsoft SQL Server Management Studio を使ってアーティクルを追加するときの既定のオプションとは異なる場合があります。

スキーマ オプションは、1 つまたは複数のオプションについて、| (ビット演算 OR) を実行した結果を 16 進数値で指定します。詳細については、「sp_addarticle」および「sp_addmergearticle」を参照してください。

注意

ビットごとの演算を実行する際は、あらかじめ、スキーマ オプションの値を binary から int に変換しておく必要があります。詳細については、「Article Options for Transactional Replication」を参照してください。

スナップショット パブリケーションまたはトランザクション パブリケーションのアーティクルを定義するときにスキーマ オプションを指定するには

  • パブリッシャー側のパブリケーション データベースに対して、sp_addarticle を実行します。@publication@article@source_object@type に、それぞれアーティクルが属しているパブリケーションの名前、アーティクル名、パブリッシュするデータベース オブジェクト、データベース オブジェクトの種類を指定し、さらに、1 つまたは複数のスキーマ オプションに対する | (ビット演算 OR) の実行結果を @schema_option に指定します。詳細については、「アーティクルを定義する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

マージ パブリケーションのアーティクルを定義するときにスキーマ オプションを指定するには

スナップショット パブリケーションまたはトランザクション パブリケーションの既存のアーティクルに設定されているスキーマ オプションを変更するには

  1. パブリッシャー側のパブリケーション データベースに対して sp_helparticle を実行します。@publication@article に、それぞれアーティクルが属しているパブリケーションの名前およびアーティクル名を指定します。結果セットの schema_option 列の値を確認してください。

  2. 手順 1. の値、および必要なスキーマ オプションの値を使って & (ビット演算 AND) 演算を実行し、対象のオプションが設定されているかどうかを確認します。

    • 実行結果が 0 の場合、オプションは設定されていません。

    • 実行結果がオプションの値の場合、そのオプションは既に設定されています。

  3. オプションが設定されていなかった場合は、手順 1. の値と、必要なスキーマ オプション値を使って | (ビット演算 OR) 演算を実行します。

  4. パブリッシャーのパブリケーション データベースで sp_changearticle を実行します。@publication にアーティクルが属しているパブリケーションの名前を、@article にアーティクル名を、@propertyschema_option を指定し、さらに、手順 3. で得られた 16 進数値を @value に指定します。

  5. スナップショット エージェントを実行して、新しいスナップショットを生成します。詳細については、「初期スナップショットを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

マージ パブリケーションの既存のアーティクルのスキーマ オプションを変更するには

  1. パブリッシャーのパブリケーション データベースで sp_helpmergearticle を実行します。@publication@article に、それぞれアーティクルが属しているパブリケーションの名前およびアーティクル名を指定します。結果セットの schema_option 列の値を確認してください。

  2. 手順 1. の値、および必要なスキーマ オプションの値を使って & (ビット演算 AND) 演算を実行し、対象のオプションが設定されているかどうかを確認します。

    • 実行結果が 0 の場合、オプションは設定されていません。

    • 実行結果がオプションの値の場合、そのオプションは既に設定されています。

  3. オプションが設定されていなかった場合は、手順 1. の値と、必要なスキーマ オプション値を使って | (ビット演算 OR) 演算を実行します。

  4. パブリッシャーのパブリケーション データベースで sp_changemergearticle を実行します。@publication にアーティクルが属しているパブリケーションの名前を、@article にアーティクル名を、@propertyschema_option を指定し、さらに、手順 3. で得られた 16 進数値を @value に指定します。

  5. スナップショット エージェントを実行して、新しいスナップショットを生成します。詳細については、「初期スナップショットを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。