次の方法で共有


アーティクルの種類の指定 (レプリケーション Transact-SQL プログラミング)

レプリケーションにおける既定の種類のアーティクルはテーブル アーティクルですが、ビュー、ストアド プロシージャ、ユーザー定義関数、ストアド プロシージャ実行など、他のデータベース オブジェクトもパブリッシュできます。 レプリケーション ストアド プロシージャを使用することで、アーティクルの定義時にプログラムでアーティクルの種類を指定できます。 使用するストアド プロシージャは、レプリケーションの種類とアーティクルの種類に応じて異なります。

注意

テーブル、ビュー、ストアド プロシージャのアーティクルを定義する際にスキーマのみを指定すると、そのオブジェクトの定義のみをレプリケートするように指定されます。

トランザクション パブリケーションまたはスナップショット パブリケーションでテーブル アーティクルをパブリッシュするには

  1. パブリッシャー側のパブリケーション データベースに対して、sp_addarticle を実行します。 @type に次のいずれかの値を指定して、アーティクルの種類を定義します。

    • logbased - ログベース テーブル アーティクル。トランザクション レプリケーションとスナップショット レプリケーションの既定の設定です。 レプリケーションでは、行方向のフィルター選択に使用されるストアド プロシージャと、列方向にフィルター選択されるアーティクルを定義するビューが自動的に生成されます。

    • logbased manualfilter - ログベースの、行方向にフィルター選択されるアーティクル。行方向のフィルター選択に使用されるストアド プロシージャは、ユーザーが手動で作成して定義し、@filter に指定します。 詳細については、「静的行フィルターの定義および変更」を参照してください。

    • logbased manualview - ログベースの、列方向にフィルター選択されるアーティクル。列方向にフィルター選択されるアーティクルを定義するビューは、ユーザーが作成して定義し、@sync_object に指定します。 詳細については、「静的行フィルターの定義および変更」および「列フィルターの定義および変更」を参照してください。

    • logbased manualboth - ログベースの、行方向と列方向にフィルター選択されるアーティクル。行方向のフィルター選択に使用されるストアド プロシージャと、列方向にフィルター選択されるアーティクルを定義するビューは、どちらもユーザーが作成して定義し、それぞれ @filter@sync_object に指定します。 詳細については、「静的行フィルターの定義および変更」および「列フィルターの定義および変更」を参照してください。

    これにより、パブリケーションに新しいアーティクルが定義されます。 詳細については、「アーティクルの定義」を参照してください。

  2. logbased manualboth および logbased manualfilter のアーティクルの場合、sp_articlefilter を実行して、行方向にフィルター選択されるアーティクル用のフィルター選択ストアド プロシージャを生成します。 詳細については、「静的行フィルターの定義および変更」を参照してください。

  3. logbased manualbothlogbased manualview、および logbased manualfilter のアーティクルの場合、sp_articleview を実行して、列方向にフィルター選択されるアーティクルを定義するビューを生成します。 詳細については、「列フィルターの定義および変更」を参照してください。

トランザクション パブリケーションまたはスナップショット パブリケーションでビュー アーティクルまたはインデックス付きビュー アーティクルをパブリッシュするには

  1. パブリッシャー側のパブリケーション データベースに対して、sp_addarticle を実行します。 @type に次のいずれかの値を指定して、アーティクルの種類を定義します。

    • indexed view logbased - ログベースのインデックス付きビュー アーティクル。 レプリケーションでは、行方向のフィルター選択に使用されるストアド プロシージャと、列方向にフィルター選択されるアーティクルを定義するビューが自動的に生成されます。

    • view schema only - スキーマのみのビュー アーティクル。 ベース テーブルもレプリケートする必要があります。

    • indexed view schema only - スキーマのみのインデックス付きビュー アーティクル。 ベース テーブルもレプリケートする必要があります。

    • indexed view logbased manualfilter - ログベースの、行方向にフィルター選択されるインデックス付きビュー アーティクル。行方向のフィルター選択に使用されるストアド プロシージャは、ユーザーが手動で作成して定義し、@filter に指定します。 詳細については、「静的行フィルターの定義および変更」を参照してください。

    • indexed view logbased manualview - ログベースのフィルター選択されるインデックス付きビュー アーティクル。列方向にフィルター選択されるアーティクルを定義するビューは、ユーザーが作成して定義し、@sync_object に指定します。 詳細については、「静的行フィルターの定義および変更」および「列フィルターの定義および変更」を参照してください。

    • indexed view logbased manualboth - ログベースの、フィルター選択されるインデックス付きビュー アーティクル。行方向のフィルター選択に使用されるストアド プロシージャと、列方向にフィルター選択されるアーティクルを定義するビューは、どちらもユーザーが作成して定義し、それぞれ @filter@sync_object に指定します。 詳細については、「静的行フィルターの定義および変更」および「列フィルターの定義および変更」を参照してください。

    これにより、パブリケーションに新しいアーティクルが定義されます。 詳細については、「アーティクルの定義」を参照してください。

  2. logbased manualboth および logbased manualfilter のアーティクルの場合、sp_articlefilter を実行して、行方向にフィルター選択されるアーティクル用のフィルター選択ストアド プロシージャを生成します。 詳細については、「静的行フィルターの定義および変更」を参照してください。

  3. logbased manualbothlogbased manualview、および logbased manualfilter のアーティクルの場合、sp_articleview を実行して、列方向にフィルター選択されるアーティクルを定義するビューを生成します。 詳細については、「列フィルターの定義および変更」を参照してください。

トランザクション パブリケーションまたはスナップショット パブリケーションでストアド プロシージャ、ストアド プロシージャ実行、またはユーザー定義関数のアーティクルをパブリッシュするには

マージ パブリケーションでテーブル アーティクルまたはビュー アーティクルをパブリッシュするには

  • パブリッシャー側のパブリケーション データベースに対して、sp_addmergearticle を実行します。 @type に次のいずれかの値を指定して、アーティクルの種類を定義します。

    • table - テーブル アーティクル。

    • indexed view schema only - スキーマのみのインデックス付きビュー アーティクル。

    • view schema only - スキーマのみのビュー アーティクル。

    これにより、パブリケーションに新しいアーティクルが定義されます。 詳細については、「アーティクルの定義」を参照してください。

マージ パブリケーションにストアド プロシージャまたはユーザー定義関数のアーティクルをパブリッシュするには

  • パブリッシャー側のパブリケーション データベースに対して、sp_addmergearticle を実行します。 @type に次のいずれかの値を指定して、アーティクルの種類を定義します。

    • func schema only - スキーマのみのユーザー定義関数アーティクル。

    • proc schema only - スキーマのみのストアド プロシージャ アーティクル。

    これにより、パブリケーションに新しいアーティクルが定義されます。 詳細については、「アーティクルの定義」を参照してください。

関連項目

概念

レプリケーション システム ストアド プロシージャの概念

データとデータベース オブジェクトのパブリッシュ