スキーマ オプションの指定
このトピックでは、SQL Server 2012 で SQL Server Management Studio または Transact-SQL を使用して、スキーマのオプションを指定する方法について説明します。 テーブルまたはビューをパブリッシュするとき、パブリッシュされたオブジェクト用にレプリケートされるオブジェクトの作成オプションを制御できます。 アーティクルが作成されるときにこれらのオプションを設定することができ、後で変更することもできます。 アーティクルに対してオプションを明示的に指定しなかった場合、既定のオプションが定義されます。
注 |
---|
レプリケーションのストアド プロシージャを使用した場合の既定のスキーマ オプションは、SQL Server Management Studio を使ってアーティクルを追加するときの既定のオプションとは異なる場合があります。 |
このトピックの内容
作業を開始する準備:
制限事項と制約事項
推奨事項
スキーマ オプションを指定するために使用するもの:
SQL Server Management Studio
Transact-SQL
作業を開始する準備
制限事項と制約事項
- パブリケーションの作成後にスキーマ オプションを変更する場合は、新しいスナップショットを生成する必要があります。
推奨事項
- すべてのスキーマ オプションの一覧については、「sp_addarticle (Transact-SQL)」および「sp_addmergearticle (Transact-SQL)」の「@schema_option パラメーター」を参照してください。
[先頭に戻る]
SQL Server Management Studio の使用
スキーマ オプション (制約やトリガーをサブスクライバーにコピーするかどうかなど) は、[アーティクルのプロパティ - <Article>] ダイアログ ボックスの [プロパティ] タブで指定します。 このタブは、パブリケーションの新規作成ウィザードおよび [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスで使用できます。 このウィザードの使用とダイアログ ボックスへのアクセスの詳細については、「パブリケーションの作成」および「パブリケーション プロパティの表示および変更」を参照してください。
スキーマ オプションを指定するには
パブリケーションの新規作成ウィザードまたは [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [アーティクル] ページで、アーティクルを選択し、[アーティクルのプロパティ] をクリックします。
スキーマ オプションの変更を適用するアーティクルを選択します。
[反転表示された <ObjectType> アーティクルのプロパティを設定] をクリックし、[アーティクルのプロパティ - <ObjectName>] ダイアログ ボックスを表示します。このダイアログ ボックスで行われたプロパティの変更は、[アーティクル] ページのオブジェクト ペインで反転表示されたオブジェクトのみに適用されます。
[すべての <ObjectType> アーティクルのプロパティを設定] をクリックし、[すべての <ObjectType> アーティクルのプロパティ] ダイアログ ボックスを表示します。このダイアログ ボックスで行われたプロパティの変更は、パブリケーションが選択されていないオブジェクトも含めた、[アーティクル] ページのオブジェクト ペインにあるこの種類のすべてのオブジェクトに適用されます。
注 [すべての <ObjectType> アーティクルのプロパティ] ダイアログ ボックスで行われたプロパティの変更は、[アーティクルのプロパティ - <ObjectName>] ダイアログ ボックスで以前に行われた変更のすべてを上書きします。 たとえば、あるオブジェクトの種類であるすべてのアーティクルに対して一連の既定値を設定し、一部のプロパティを個々のオブジェクトに対して設定する場合は、すべてのアーティクルの既定値を先に設定してから、 個々のオブジェクトのプロパティを設定します。
[アーティクルのプロパティ - <Article>] ダイアログ ボックスの [プロパティ] タブの [サブスクライバーへのオブジェクトと設定のコピー] および [対象オブジェクト] セクションで、オプションの値を設定します。
必要に応じてプロパティを変更し、[OK] をクリックします。
[パブリケーションのプロパティ - <Publication>] ダイアログ ボックスが表示されている場合は、[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 に指定します。
スナップショット エージェントを実行して、新しいスナップショットを生成します。 詳細については、「初期スナップショットの作成および適用」を参照してください。
[先頭に戻る]