スキーマ オプションの指定
このトピックでは、SQL Server Management Studioまたは Transact-SQL を使用して、SQL Server 2014 でスキーマ オプションを指定する方法について説明します。 テーブルまたはビューをパブリッシュするとき、パブリッシュされたオブジェクト用にレプリケートされるオブジェクトの作成オプションを制御できます。 アーティクルが作成されるときにこれらのオプションを設定することができ、後で変更することもできます。 アーティクルに対してオプションを明示的に指定しなかった場合、既定のオプションが定義されます。
注意
レプリケーションのストアド プロシージャを使用した場合の既定のスキーマ オプションは、 SQL Server Management Studioを使ってアーティクルを追加するときの既定のオプションとは異なる場合があります。
このトピックの内容
作業を開始する準備:
スキーマ オプションを指定するために使用するもの:
はじめに
制限事項と制約事項
- パブリケーションの作成後にスキーマ オプションを変更する場合は、新しいスナップショットを生成する必要があります。
Recommendations
- スキーマ オプションの完全な一覧については、sp_addarticle (Transact-SQL) と sp_addmergearticle (Transact-SQL) の @schema_option パラメーターを参照してください。
SQL Server Management Studio を使用する
[アーティクルのプロパティ - <アーティ>クル] ダイアログ ボックスの [プロパティ] タブで、制約とトリガーをサブスクライバーにコピーするかどうかなどのスキーマ オプションを指定します。 このタブは、[パブリケーションの新規作成ウィザード] および [ パブリケーションのプロパティ - <パブリケーション> ] ダイアログ ボックスで使用できます。 ウィザードの使用およびダイアログ ボックスへのアクセスの詳細については、「パブリケーションの作成」および「View and Modify Publication Properties」 (パブリケーション プロパティの表示および変更) を参照してください。
スキーマ オプションを指定するには
[パブリケーションの新規作成ウィザード] または [パブリケーションのプロパティ - <パブリケーション>] ダイアログ ボックスの [アーティクル] ページで、アーティクルを選択し、[アーティクルのプロパティ] をクリックします。
スキーマ オプションの変更を適用するアーティクルを選択します。
[ 強調表示された <ObjectType> アーティクルのプロパティの設定 ] をクリックして [ アーティクルのプロパティ - <オブジェクト名> ] ダイアログ ボックスを起動します。このダイアログ ボックスで行われたプロパティの変更は、[ アーティクル ] ページのオブジェクト ペインで強調表示されているオブジェクトにのみ適用されます。
[ すべての <ObjectType> アーティクルのプロパティの設定 ] をクリックして [ すべての <ObjectType> アーティ クルのプロパティ] ダイアログ ボックスを起動します。このダイアログ ボックスで行われたプロパティの変更は、[ アーティ クル] ページのオブジェクト ペイン内のすべてのオブジェクトに適用されます(パブリケーション用にまだ選択されていないオブジェクトも含まれます)。
注意
[ すべての <ObjectType> アーティクルのプロパティ ] ダイアログ ボックスで行われたプロパティの変更は、[アーティクルの プロパティ - <オブジェクト名> ] ダイアログ ボックスで以前に行われたプロパティよりも優先されます。 たとえば、あるオブジェクトの種類のすべてのアーティクルに対して複数の既定を設定し、かつそれぞれのオブジェクトに対してプロパティを設定する場合には、最初にすべてのアーティクルに対する既定を設定します。 次に、それぞれのオブジェクトに対してプロパティを設定します。
[アーティクルのプロパティ- <> アーティクル] ダイアログ ボックスの [プロパティ] タブの [サブスクライバーおよび宛先オブジェクトにオブジェクトと設定をコピーする] セクションで、オプションの値を指定します。
必要に応じてプロパティを変更し、 [OK] をクリックします。
[ パブリケーションのプロパティ - <パブリケーション> ] ダイアログ ボックスにある場合は、[ OK] を クリックしてダイアログ ボックスを保存して閉じます。
Transact-SQL の使用
スキーマ オプションは、1 つまたは複数のオプションについて、 | (ビット演算 OR) を実行した結果を 16 進数値で指定します。 詳細については、「 sp_addarticle 」および「 sp_addmergearticle」を参照してください。
注意
ビットごとの演算を実行する際は、あらかじめ、スキーマ オプションの値を binary から int に変換しておく必要があります。 詳細については、「 CAST および CONVERT (Transact-SQL)」を参照してください。
スナップショット パブリケーションまたはトランザクション パブリケーションのアーティクルを定義するときにスキーマ オプションを指定するには
- パブリッシャー側のパブリケーション データベースに対して、 sp_addarticleを実行します。 @publication、 @article、 @source_object、 @typeに、それぞれアーティクルが属しているパブリケーションの名前、アーティクル名、パブリッシュするデータベース オブジェクト、データベース オブジェクトの種類を指定し、さらに、1 つまたは複数のスキーマ オプションに対する | (ビット演算 OR) の実行結果を @schema_optionに指定します。 詳しくは、「 アーティクルを定義」をご覧ください。
マージ パブリケーションのアーティクルを定義するときにスキーマ オプションを指定するには
- パブリッシャー側のパブリケーション データベースに対して、 sp_addmergearticleを実行します。 @publication、 @article、 @source_objectに、それぞれアーティクルが属しているパブリケーションの名前、アーティクル名、パブリッシュするデータベース オブジェクトを指定し、さらに、1 つまたは複数のスキーマ オプションに対する | (ビット演算 OR) の実行結果を @schema_optionに指定します。 詳しくは、「 アーティクルを定義」をご覧ください。
スナップショット パブリケーションまたはトランザクション パブリケーションの既存のアーティクルに設定されているスキーマ オプションを変更するには
パブリッシャー側のパブリケーション データベースに対して sp_helparticleを実行します。 @publication と @articleに、それぞれアーティクルが属しているパブリケーションの名前およびアーティクル名を指定します。 結果セットの schema_option 列の値を確認してください。
手順 1 の値、および必要なスキーマ オプションの値を使って & (ビット演算 AND) 演算を実行し、対象のオプションが設定されているかどうかを確認します。
実行結果が 0の場合、オプションは設定されていません。
実行結果がオプションの値の場合、そのオプションは既に設定されています。
オプションが設定されていなかった場合は、手順 1. の値と、必要なスキーマ オプション値を使って | (ビット演算 OR) 演算を実行します。
パブリッシャーのパブリケーション データベースで sp_changearticleを実行します。 @publicationにアーティクルが属しているパブリケーションの名前を、 @articleにアーティクル名を、 @property に schema_optionを指定し、さらに、手順 3. で得られた 16 進数値を @valueに指定します。
スナップショット エージェントを実行して、新しいスナップショットを生成します。 詳しくは、「 初期スナップショットの作成および適用」をご覧ください。
マージ パブリケーションの既存のアーティクルのスキーマ オプションを変更するには
パブリッシャーのパブリケーション データベースで sp_helpmergearticleを実行します。 @publication と @articleに、それぞれアーティクルが属しているパブリケーションの名前およびアーティクル名を指定します。 結果セットの schema_option 列の値を確認してください。
手順 1 の値、および必要なスキーマ オプションの値を使って & (ビット演算 AND) 演算を実行し、対象のオプションが設定されているかどうかを確認します。
実行結果が 0の場合、オプションは設定されていません。
実行結果がオプションの値の場合、そのオプションは既に設定されています。
オプションが設定されていなかった場合は、手順 1. の値と、必要なスキーマ オプション値を使って | (ビット演算 OR) 演算を実行します。
パブリッシャー側のパブリケーション データベースに対して、 sp_changemergearticleを実行します。 @publicationにアーティクルが属しているパブリケーションの名前を、 @articleにアーティクル名を、 @property に schema_optionを指定し、さらに、手順 3. で得られた 16 進数値を @valueに指定します。
スナップショット エージェントを実行して、新しいスナップショットを生成します。 詳しくは、「 初期スナップショットの作成および適用」をご覧ください。
参照
データとデータベース オブジェクトのパブリッシュ
Article Options for Transactional Replication