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

適用対象: yesSQL Server yesAzure SQL Database (Managed Instance のみ) noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

このトピックでは、 SQL Server 2019 (15.x)SQL Server 2019 (15.x)SQL Server Management StudioSQL Server Management Studio または Transact-SQLTransact-SQLを使用して、スキーマのオプションを指定する方法について説明します。This topic describes how to specify schema options in SQL Server 2019 (15.x)SQL Server 2019 (15.x) by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. テーブルまたはビューをパブリッシュするとき、パブリッシュされたオブジェクト用にレプリケートされるオブジェクトの作成オプションを制御できます。When you are publishing a table or view, you can control the object creation options that are replicated for the published object. アーティクルが作成されるときにこれらのオプションを設定することができ、後で変更することもできます。You can set these option when the article is created, and you can also change them at a later time. アーティクルに対してオプションを明示的に指定しなかった場合、既定のオプションが定義されます。If you do not explicitly specify these options for an article, a default set of options will be defined.

注意

レプリケーションのストアド プロシージャを使用した場合の既定のスキーマ オプションは、 SQL Server Management StudioSQL Server Management Studioを使ってアーティクルを追加するときの既定のオプションとは異なる場合があります。The default schema options when using replication stored procedures may differ from the default options when articles are added using SQL Server Management StudioSQL Server Management Studio.

このトピックの内容In This Topic

はじめにBefore You Begin

制限事項と制約事項Limitations and Restrictions

  • パブリケーションの作成後にスキーマ オプションを変更する場合は、新しいスナップショットを生成する必要があります。If you change schema options after a publication is created, you must generate a new snapshot.

推奨事項Recommendations

SQL Server Management Studio の使用Using SQL Server Management Studio

スキーマ オプション (制約やトリガーをサブスクライバーにコピーするかどうかなど) は、 [アーティクルのプロパティ - Article>] ダイアログ ボックスの <[プロパティ] タブで指定します。Specify schema options, such as whether to copy constraints and triggers to Subscribers, on the Properties tab of the Article Properties - <Article> dialog box. このタブは、パブリケーションの新規作成ウィザードおよび [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスで使用できます。This tab is available in the New Publication Wizard and the Publication Properties - <Publication> dialog box. ウィザードの使用およびダイアログ ボックスへのアクセスの詳細については、「パブリケーションの作成」および「View and Modify Publication Properties」 (パブリケーション プロパティの表示および変更) を参照してください。For more information about using the wizard and accessing the dialog box, see Create a Publication and View and Modify Publication Properties.

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

  1. パブリケーションの新規作成ウィザードまたは [パブリケーションのプロパティ - Publication>] ダイアログ ボックスの <[アーティクル] ページで、アーティクルを選択し、 [アーティクルのプロパティ] をクリックします。On the Articles Page of the New Publication Wizard or Publication Properties - <Publication> dialog box, select an article, and then click Article Properties.

  2. スキーマ オプションの変更を適用するアーティクルを選択します。Select which articles schema option changes should apply to:

    • [反転表示された <ObjectType> アーティクルのプロパティを設定] をクリックし、 [アーティクルのプロパティ - <ObjectName>] ダイアログ ボックスを表示します。このダイアログ ボックスで行われたプロパティの変更は、 [アーティクル] ページのオブジェクト ペインで反転表示されたオブジェクトだけに適用されます。Click Set Properties of Highlighted <ObjectType> Article to launch the Article Properties - <ObjectName> dialog box; property changes made in this dialog box are applied only to the object that is highlighted in the object pane on the Articles page.

    • [すべての <ObjectType> アーティクルのプロパティを設定] をクリックし、 [すべての <ObjectType> アーティクルのプロパティ] ダイアログ ボックスを表示します。このダイアログ ボックスで行われたプロパティの変更は、パブリケーションが選択されていないオブジェクトも含めた、 [アーティクル] ページのオブジェクト ペインにあるこの種類のすべてのオブジェクトに適用されます。Click Set Properties of All <ObjectType> Articles to launch the Properties for All <ObjectType> Articles dialog box; property changes made in this dialog box are applied to all objects of that type in the object pane on the Articles page, including ones not yet selected for publication.

      注意

      [すべての <ObjectType> アーティクルのプロパティ] ダイアログ ボックスで行われたプロパティの変更は、 [アーティクルのプロパティ - <ObjectName>] ダイアログ ボックスで以前行われたすべての変更をオーバーライドします。Property changes made in the Properties for All <ObjectType> Articles dialog box override any made previously in the Article Properties - <ObjectName> dialog box. たとえば、あるオブジェクトの種類のすべてのアーティクルに対して複数の既定を設定し、かつそれぞれのオブジェクトに対してプロパティを設定する場合には、最初にすべてのアーティクルに対する既定を設定します。If, for example, you want to set a number of defaults for all articles of an object type, but also want to set some properties for individual objects, set the defaults for all articles first. 次に、それぞれのオブジェクトに対してプロパティを設定します。Then set the properties for the individual objects.

  3. [アーティクルのプロパティ - Article>]ダイアログ ボックスの[プロパティ]タブの[サブスクライバーへのオブジェクトと設定のコピー] および <[対象オブジェクト] セクションで、オプションの値を設定します。In the Copy Objects and Settings to Subscriber and Destination Object sections of the Properties tab of the Article Properties - <Article> dialog box, specify values for the options.

  4. 必要に応じてプロパティを変更し、 [OK] をクリックします。Modify any properties if necessary, and then click OK.

  5. [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスが表示されている場合は、 [OK] をクリックして保存し、ダイアログ ボックスを閉じます。If you are in the Publication Properties - <Publication> dialog box, click OK to save and close the dialog box.

Transact-SQL の使用Using Transact-SQL

スキーマ オプションは、1 つまたは複数のオプションについて、 | (ビット演算 OR) を実行した結果を 16 進数値で指定します。Schema options are specified as a hexadecimal value that is the | (Bitwise OR) result of one or more options. 詳細については、「 sp_addarticle 」および「 sp_addmergearticle」を参照してください。For more information, see sp_addarticle and sp_addmergearticle.

注意

ビットごとの演算を実行する際は、あらかじめ、スキーマ オプションの値を binary から int に変換しておく必要があります。You must convert schema option values from binary to int before performing a bitwise operation. 詳細については、「CAST and CONVERT (Transact-SQL)」を参照してください。For more information, see CAST and CONVERT (Transact-SQL).

スナップショット パブリケーションまたはトランザクション パブリケーションのアーティクルを定義するときにスキーマ オプションを指定するにはTo specify schema options when defining an article for a snapshot or transactional publication

  1. パブリッシャー側のパブリケーション データベースに対して、 sp_addarticleを実行します。At the Publisher on the publication database, execute sp_addarticle. @publication にアーティクルが属しているパブリケーションの名前、@article にアーティクル名、@source_object にパブリッシュするデータベース オブジェクト、@type にデータベース オブジェクトの型を指定し、さらに、1 つまたは複数のスキーマ オプションに対する | (ビット演算 OR) の結果を @schema_option に指定します。Specify the name of the publication to which the article belongs for @publication, a name for the article for @article, the database object being published for @source_object, the type of database object for @type, and the | (Bitwise OR) result of one or more schema options for @schema_option. 詳しくは、「 アーティクルを定義」をご覧ください。For more information, see Define an Article.

マージ パブリケーションのアーティクルを定義するときにスキーマ オプションを指定するにはTo specify schema options when defining an article for a merge publication

  1. パブリッシャー側のパブリケーション データベースに対して、 sp_addmergearticleを実行します。At the Publisher on the publication database, execute sp_addmergearticle. @publication にアーティクルが属しているパブリケーションの名前、@article にアーティクル名、@source_object にパブリッシュするデータベース オブジェクトを指定し、さらに、1 つまたは複数のスキーマ オプションに対する | (ビット演算 OR) の結果を @schema_option に指定します。Specify the name of the publication to which the article belongs for @publication, a name for the article for @article, the database object being published for @source_object, and the | (Bitwise OR) result of one or more schema options for @schema_option. 詳しくは、「 アーティクルを定義」をご覧ください。For more information, see Define an Article.

スナップショット パブリケーションまたはトランザクション パブリケーションの既存のアーティクルに設定されているスキーマ オプションを変更するにはTo change schema options for an existing article in a snapshot or transactional publication

  1. パブリッシャー側のパブリケーション データベースに対して sp_helparticleを実行します。At the Publisher on the publication database, execute sp_helparticle. @publication@article に、それぞれアーティクルが属しているパブリケーションの名前およびアーティクル名を指定します。Specify the name of the publication to which the article belongs for @publication and the name of the article for @article. 結果セットの schema_option 列の値を確認します。Note the value of the schema_option column in the result set.

  2. 手順 1 の値、および必要なスキーマ オプションの値を使って & (ビット演算 AND) 演算を実行し、対象のオプションが設定されているかどうかを確認します。Execute a & (Bitwise AND) operation using the value from step 1 and the desired schema option value to determine if the option is set.

    • 実行結果が 0の場合、オプションは設定されていません。If the result is 0, the option is not set.

    • 実行結果がオプションの値の場合、そのオプションは既に設定されています。If the result is the option value, the option is already set.

  3. オプションが設定されていなかった場合は、手順 1. の値と、必要なスキーマ オプション値を使って | (ビット演算 OR) 演算を実行します。If the option is not set, execute a | (Bitwise OR) operation using the value from step 1 and the desired schema option value.

  4. パブリッシャーのパブリケーション データベースで sp_changearticleを実行します。At the Publisher on the publication database, execute sp_changearticle. @publication にアーティクルが属しているパブリケーションの名前を、@article にアーティクル名を、schema_option の値に @property を指定し、さらに、手順 3 で得られた 16 進数値を @value に指定します。Specify the name of the publication to which the article belongs for @publication, the name of the article for @article, a value of schema_option for @property, and the hexadecimal result from step 3 for @value.

  5. スナップショット エージェントを実行して、新しいスナップショットを生成します。Run the Snapshot Agent to generate a new snapshot. 詳しくは、「 初期スナップショットの作成および適用」をご覧ください。For more information, see Create and Apply the Initial Snapshot.

マージ パブリケーションの既存のアーティクルのスキーマ オプションを変更するにはTo change schema options for an existing article in a merge publication

  1. パブリッシャーのパブリケーション データベースで sp_helpmergearticleを実行します。At the Publisher on the publication database, execute sp_helpmergearticle. @publication@article に、それぞれアーティクルが属しているパブリケーションの名前およびアーティクル名を指定します。Specify the name of the publication to which the article belongs for @publication and the name of the article for @article. 結果セットの schema_option 列の値を確認してください。Note the value of the schema_option column in the result set.

  2. 手順 1 の値、および必要なスキーマ オプションの値を使って & (ビット演算 AND) 演算を実行し、対象のオプションが設定されているかどうかを確認します。Execute a & (Bitwise AND) operation using the value from step 1 and the desired schema option value to determine if the option is set.

    • 実行結果が 0の場合、オプションは設定されていません。If the result is 0, the option is not set.

    • 実行結果がオプションの値の場合、そのオプションは既に設定されています。If the result is the option value, the option is already set.

  3. オプションが設定されていなかった場合は、手順 1. の値と、必要なスキーマ オプション値を使って | (ビット演算 OR) 演算を実行します。If the option is not set, execute a | (Bitwise OR) operation using the value from step 1 and the desired schema option value.

  4. パブリッシャー側のパブリケーション データベースに対して、 sp_changemergearticleを実行します。At the Publisher on the publication database, execute sp_changemergearticle. @publication にアーティクルが属しているパブリケーションの名前を、@article にアーティクル名を、schema_option の値に @property を指定し、さらに、手順 3 で得られた 16 進数値を @value に指定します。Specify the name of the publication to which the article belongs for @publication, the name of the article for @article, a value of schema_option for @property, and the hexadecimal result from step 3 for @value.

  5. スナップショット エージェントを実行して、新しいスナップショットを生成します。Run the Snapshot Agent to generate a new snapshot. 詳しくは、「 初期スナップショットの作成および適用」をご覧ください。For more information, see Create and Apply the Initial Snapshot.

参照See Also

データとデータベース オブジェクトのパブリッシュ Publish Data and Database Objects
Article Options for Transactional ReplicationArticle Options for Transactional Replication