SQL Server レプリケーションのスキーマ オプションを指定する

適用対象: SQL ServerAzure SQL Managed Instance

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

Note

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

このトピックの内容

はじめに

制限事項と制約事項

  • パブリケーションの作成後にスキーマ オプションを変更する場合は、新しいスナップショットを生成する必要があります。

推奨事項

SQL Server Management Studio を使用する

スキーマ オプション (制約やトリガーをサブスクライバーにコピーするかどうかなど) は、[アーティクルのプロパティ - <Article>] ダイアログ ボックスの [プロパティ] タブで指定します。 このタブは、パブリケーションの新規作成ウィザードおよび [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスで使用できます。 ウィザードの使用およびダイアログ ボックスへのアクセスの詳細については、「パブリケーションの作成」および「View and Modify Publication Properties」 (パブリケーション プロパティの表示および変更) を参照してください。

スキーマ オプションを指定するには

  1. パブリケーションの新規作成ウィザードまたは [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [アーティクル] ページで、アーティクルを選択し、[アーティクルのプロパティ] をクリックします。

  2. スキーマ オプションの変更を適用するアーティクルを選択します。

    • [反転表示された <ObjectType> アーティクルのプロパティを設定] をクリックし、[アーティクルのプロパティ - <ObjectName>] ダイアログ ボックスを表示します。このダイアログ ボックスで行われたプロパティの変更は、[アーティクル] ページのオブジェクト ペインで反転表示されたオブジェクトだけに適用されます。

    • [すべての <ObjectType> アーティクルのプロパティを設定] をクリックし、[すべての <ObjectType> アーティクルのプロパティ] ダイアログ ボックスを表示します。このダイアログ ボックスで行われたプロパティの変更は、パブリケーション用にまだ選択されていないオブジェクトを含めた、[アーティクル] ページのオブジェクト ペインにあるこの種類のすべてのオブジェクトに適用されます。

      Note

      [すべての <ObjectType> アーティクルのプロパティ] ダイアログ ボックスで行われたプロパティの変更は、[アーティクルのプロパティ - <ObjectName> ダイアログ ボックスで以前行われたすべての変更をオーバーライドします。 たとえば、あるオブジェクトの種類のすべてのアーティクルに対して複数の既定を設定し、かつそれぞれのオブジェクトに対してプロパティを設定する場合には、最初にすべてのアーティクルに対する既定を設定します。 次に、それぞれのオブジェクトに対してプロパティを設定します。

  3. [アーティクルのプロパティ - <Article>] ダイアログ ボックスの [プロパティ] タブの [サブスクライバーへのオブジェクトと設定のコピー] および [宛先オブジェクト] セクションで、オプションの値を指定します。

  4. 必要に応じてプロパティを変更し、 [OK]をクリックします。

  5. [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスが表示されている場合は、[OK] をクリックして保存し、ダイアログ ボックスを閉じます。

Transact-SQL の使用

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

Note

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

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

  1. パブリッシャー側のパブリケーション データベースに対して、 sp_addarticleを実行します。 @publication にアーティクルが属しているパブリケーションの名前、@article にアーティクル名、@source_object にパブリッシュするデータベース オブジェクト、@type にデータベース オブジェクトの型を指定し、さらに、1 つまたは複数のスキーマ オプションに対する | (ビット演算 OR) の結果を @schema_option に指定します。 詳しくは、「 アーティクルを定義」をご覧ください。

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

  1. パブリッシャー側のパブリケーション データベースに対して、 sp_addmergearticleを実行します。 @publication にアーティクルが属しているパブリケーションの名前、@article にアーティクル名、@source_object にパブリッシュするデータベース オブジェクトを指定し、さらに、1 つまたは複数のスキーマ オプションに対する | (ビット演算 OR) の結果を @schema_option に指定します。 詳しくは、「 アーティクルを定義」をご覧ください。

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

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

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

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

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

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

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

  5. スナップショット エージェントを実行して、新しいスナップショットを生成します。 詳しくは、「 初期スナップショットの作成および適用」をご覧ください。

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

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

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

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

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

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

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

  5. スナップショット エージェントを実行して、新しいスナップショットを生成します。 詳しくは、「 初期スナップショットの作成および適用」をご覧ください。

参照

データとデータベース オブジェクトのパブリッシュ
Article Options for Transactional Replication