アーティクルの種類を指定する方法 (レプリケーション Transact-SQL プログラミング)
レプリケーションにおける既定の種類のアーティクルはテーブル アーティクルですが、ビュー、ストアド プロシージャ、ユーザー定義関数、ストアド プロシージャ実行など、他のデータベース オブジェクトもパブリッシュできます。レプリケーション ストアド プロシージャを使用することで、アーティクルの定義時にプログラムでアーティクルの種類を指定できます。使用するストアド プロシージャは、レプリケーションの種類とアーティクルの種類に応じて異なります。
注 |
---|
テーブル、ビュー、ストアド プロシージャのアーティクルを定義する際にスキーマのみを指定すると、そのオブジェクトの定義のみをレプリケートするように指定されます。 |
トランザクション パブリケーションまたはスナップショット パブリケーションでテーブル アーティクルをパブリッシュするには
パブリッシャ側のパブリケーション データベースに対して、sp_addarticle を実行します。@type に次のいずれかの値を指定して、アーティクルの種類を定義します。
logbased - ログベース テーブル アーティクル。トランザクション レプリケーションとスナップショット レプリケーションの既定の設定です。レプリケーションでは、行方向のフィルタ選択に使用されるストアド プロシージャと、列方向にフィルタ選択されるアーティクルを定義するビューが自動的に生成されます。
logbased manualfilter - ログベースの、行方向にフィルタ選択されるアーティクル。行方向のフィルタ選択に使用されるストアド プロシージャは、ユーザーが手動で作成して定義し、@filter に指定します。詳細については、「静的行フィルタを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
logbased manualview - ログベースの、列方向にフィルタ選択されるアーティクル。列方向にフィルタ選択されるアーティクルを定義するビューは、ユーザーが作成して定義し、@sync_object に指定します。詳細については、「静的行フィルタを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」および「列フィルターを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
logbased manualboth - ログベースの、行方向と列方向にフィルタ選択されるアーティクル。行方向のフィルタ選択に使用されるストアド プロシージャと、列方向にフィルタ選択されるアーティクルを定義するビューは、どちらもユーザーが作成して定義し、それぞれ @filter と @sync_object に指定します。詳細については、「静的行フィルタを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」および「列フィルターを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
これにより、パブリケーションに新しいアーティクルが定義されます。詳細については、「アーティクルを定義する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
logbased manualboth および logbased manualfilter のアーティクルの場合、sp_articlefilter を実行して、行方向にフィルタ選択されるアーティクル用のフィルタ選択ストアド プロシージャを生成します。詳細については、「静的行フィルタを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
logbased manualboth、logbased manualview、および logbased manualfilter のアーティクルの場合、sp_articleview を実行して、列方向にフィルタ選択されるアーティクルを定義するビューを生成します。詳細については、「列フィルターを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
トランザクション パブリケーションまたはスナップショット パブリケーションでビュー アーティクルまたはインデックス付きビュー アーティクルをパブリッシュするには
パブリッシャ側のパブリケーション データベースに対して、sp_addarticle を実行します。@type に次のいずれかの値を指定して、アーティクルの種類を定義します。
indexed view logbased - ログベースのインデックス付きビュー アーティクル。レプリケーションでは、行方向のフィルタ選択に使用されるストアド プロシージャと、列方向にフィルタ選択されるアーティクルを定義するビューが自動的に生成されます。
view schema only - スキーマのみのビュー アーティクル。ベース テーブルもレプリケートする必要があります。
indexed view schema only - スキーマのみのインデックス付きビュー アーティクル。ベース テーブルもレプリケートする必要があります。
indexed view logbased manualfilter - ログベースの、行方向にフィルタ選択されるインデックス付きビュー アーティクル。行方向のフィルタ選択に使用されるストアド プロシージャは、ユーザーが手動で作成して定義し、@filter に指定します。詳細については、「静的行フィルタを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
indexed view logbased manualview - ログベースのフィルタ選択されるインデックス付きビュー アーティクル。列方向にフィルタ選択されるアーティクルを定義するビューは、ユーザーが作成して定義し、@sync_object に指定します。詳細については、「静的行フィルタを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」および「列フィルターを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
indexed view logbased manualboth - ログベースの、フィルタ選択されるインデックス付きビュー アーティクル。行方向のフィルタ選択に使用されるストアド プロシージャと、列方向にフィルタ選択されるアーティクルを定義するビューは、どちらもユーザーが作成して定義し、それぞれ @filter と @sync_object に指定します。詳細については、「静的行フィルタを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」および「列フィルターを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
これにより、パブリケーションに新しいアーティクルが定義されます。詳細については、「アーティクルを定義する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
logbased manualboth および logbased manualfilter のアーティクルの場合、sp_articlefilter を実行して、行方向にフィルタ選択されるアーティクル用のフィルタ選択ストアド プロシージャを生成します。詳細については、「静的行フィルタを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
logbased manualboth、logbased manualview、および logbased manualfilter のアーティクルの場合、sp_articleview を実行して、列方向にフィルタ選択されるアーティクルを定義するビューを生成します。詳細については、「列フィルターを定義および変更する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
トランザクション パブリケーションまたはスナップショット パブリケーションでストアド プロシージャ、ストアド プロシージャ実行、またはユーザー定義関数のアーティクルをパブリッシュするには
パブリッシャ側のパブリケーション データベースに対して、sp_addarticle を実行します。@type に次のいずれかの値を指定して、アーティクルの種類を定義します。
proc schema only - スキーマのみのストアド プロシージャ アーティクル。
proc exec - アーティクルのすべてのサブスクライバにストアド プロシージャの実行をレプリケートします。詳細については、「トランザクション レプリケーションにおけるパブリッシング ストアド プロシージャの実行」を参照してください。
serializable proc exec - シリアル化可能なトランザクションのコンテキスト内で実行される場合にのみ、ストアド プロシージャの実行をレプリケートします。詳細については、「トランザクション レプリケーションにおけるパブリッシング ストアド プロシージャの実行」を参照してください。
func schema only - スキーマのみのユーザー定義関数アーティクル。
これにより、パブリケーションに新しいアーティクルが定義されます。詳細については、「アーティクルを定義する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
マージ パブリケーションでテーブル アーティクルまたはビュー アーティクルをパブリッシュするには
パブリッシャ側のパブリケーション データベースに対して、sp_addmergearticle を実行します。@type に次のいずれかの値を指定して、アーティクルの種類を定義します。
table - テーブル アーティクル。
indexed view schema only - スキーマのみのインデックス付きビュー アーティクル。
view schema only - スキーマのみのビュー アーティクル。
これにより、パブリケーションに新しいアーティクルが定義されます。詳細については、「アーティクルを定義する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
マージ パブリケーションにストアド プロシージャまたはユーザー定義関数のアーティクルをパブリッシュするには
パブリッシャ側のパブリケーション データベースに対して、sp_addmergearticle を実行します。@type に次のいずれかの値を指定して、アーティクルの種類を定義します。
func schema only - スキーマのみのユーザー定義関数アーティクル。
proc schema only - スキーマのみのストアド プロシージャ アーティクル。
これにより、パブリケーションに新しいアーティクルが定義されます。詳細については、「アーティクルを定義する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。