次の方法で共有


sp_addsynctriggers (Transact-SQL)

適用対象: SQL Server

すべての種類の更新可能なサブスクリプションで使用されるトリガーをサブスクライバーに作成します (即時更新、キュー更新、およびフェールオーバーとしての即時更新)。 このストアド プロシージャは、サブスクリプション データベースのサブスクライバーで実行されます。

重要

sp_addsynctriggerの代わりに、sp_script_synctran_commands プロシージャを使用する必要があります。 sp_script_synctran_commands は、 sp_addsynctrigger 呼び出しを含むスクリプトを生成します。

Transact-SQL 構文表記規則

構文

sp_addsynctriggers
    [ @sub_table = ] N'sub_table'
    , [ @sub_table_owner = ] N'sub_table_owner'
    , [ @publisher = ] N'publisher'
    , [ @publisher_db = ] N'publisher_db'
    , [ @publication = ] N'publication'
    , [ @ins_proc = ] N'ins_proc'
    , [ @upd_proc = ] N'upd_proc'
    , [ @del_proc = ] N'del_proc'
    , [ @cftproc = ] N'cftproc'
    , [ @proc_owner = ] N'proc_owner'
    [ , [ @identity_col = ] N'identity_col' ]
    [ , [ @ts_col = ] N'ts_col' ]
    [ , [ @filter_clause = ] N'filter_clause' ]
    , [ @primary_key_bitmap = ] primary_key_bitmap
    [ , [ @identity_support = ] identity_support ]
    [ , [ @independent_agent = ] independent_agent ]
    , [ @distributor = ] N'distributor'
    [ , [ @pubversion = ] pubversion ]
    [ , [ @dump_cmds = ] dump_cmds ]
[ ; ]

引数

[ @sub_table = ] N'sub_table'

サブスクライバー テーブルの名前。 @sub_tablesysname で、既定値はありません。

[ @sub_table_owner = ] N'sub_table_owner'

サブスクライバー テーブルの所有者の名前。 @sub_table_ownersysname で、既定値はありません。

[ @publisher = ] N'publisher'

パブリッシャー サーバーの名前です。 @publishersysname で、既定値はありません。

[ @publisher_db = ] N'publisher_db'

パブリッシャー データベースの名前。 @publisher_dbsysname で、既定値はありません。 NULL場合は、現在のデータベースが使用されます。

[ @publication = ] N'publication'

出版物の名前。 @publicationsysname で、既定値はありません。

[ @ins_proc = ] N'ins_proc'

パブリッシャーでの同期トランザクション挿入をサポートするストアド プロシージャの名前。 @ins_procsysname で、既定値はありません。

[ @upd_proc = ] N'upd_proc'

パブリッシャーでの同期トランザクション更新をサポートするストアド プロシージャの名前。 @upd_procsysname で、既定値はありません。

[ @del_proc = ] N'del_proc'

パブリッシャーでの同期トランザクションの削除をサポートするストアド プロシージャの名前。 @del_procsysname で、既定値はありません。

[ @cftproc = ] N'cftproc'

キュー更新を許可するパブリケーションによって使用される自動生成されたプロシージャの名前。 @cftprocsysname で、既定値はありません。 即時更新が可能なパブリケーションの場合、この値は NULL。 このパラメーターは、キュー更新 (キュー更新、およびフェールオーバーとしてキュー更新を使用する即時更新) が許可されているパブリケーションに適用されます。

[ @proc_owner = ] N'proc_owner'

パブリケーションを更新するための自動生成されたすべてのストアド プロシージャ (キューまたは即時) が作成された発行元のユーザー アカウントを指定します。 @proc_ownersysname で、既定値はありません。

[ @identity_col = ] N'identity_col'

パブリッシャーの ID 列の名前。 @identity_colsysname で、既定値は NULL です。

[ @ts_col = ] N'ts_col'

パブリッシャーの timestamp 列の名前。 @ts_colsysname で、既定値は NULL です。

[ @filter_clause = ] N'filter_clause'

水平フィルターを定義する制限 (WHERE) 句。 制限句を入力するときは、キーワード WHERE を省略します。 @filter_clausenvarchar(4000) で、既定値は NULL です。

[ @primary_key_bitmap = ] primary_key_bitmap

テーブル内の主キー列のビット マップ。 @primary_key_bitmapvarbinary(4000)で、既定値はありません。

[ @identity_support = ] identity_support

キュー更新が使用されている場合に、ID 範囲の自動処理を有効または無効にします。 @identity_supportbit で、既定値は 0 です。

  • 0 は、ID 範囲のサポートがないことを意味します。
  • 1 では、ID 範囲の自動処理が有効になります。

[ @independent_agent = ] independent_agent

このパブリケーションに 1 つのディストリビューション エージェント (独立したエージェント) があるか、パブリケーション データベースとサブスクリプション データベース のペア (共有エージェント) ごとに 1 つのディストリビューション エージェントがあるかを示します。 @independent_agentbit で、既定値は 0 です。 この値は、パブリッシャーで定義されているパブリケーションの independent_agent プロパティの値を反映します。

  • 0場合、エージェントは共有エージェントです。
  • 1場合、エージェントは独立したエージェントです。

[ @distributor = ] N'distributor'

ディストリビューターの名前。 @distributorsysname で、既定値はありません。

[ @pubversion = ] pubversion

パブリッシャーのバージョンを指定します。 @pubversionint で、既定値は 1 です。

  • 1 は、パブリッシャーのバージョンが SQL Server 2000 (8.x) Service Pack 2 以前のバージョンであることを意味します。
  • 2 は、パブリッシャーが SQL Server 2000 (8.x) Service Pack 3 (SP 3) 以降のバージョンであることを意味します。

パブリッシャー バージョンが SQL Server 2000 (8.x) SP 3 以降のバージョンの場合は、@pubversion を明示的に 2 に設定する必要があります。

[ @dump_cmds = ] dump_cmds

単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。

リターン コードの値

0 (成功) または 1 (失敗)。

解説

sp_addsynctriggersは、サブスクリプションの初期化の一環としてディストリビューション エージェントによって使用されます。 このストアド プロシージャは通常、ユーザーによって実行されるわけではありませんが、ユーザーが同期なしサブスクリプションを手動で設定する必要がある場合に便利な場合があります。

アクセス許可

sysadmin固定サーバー ロールまたは固定データベース ロールdb_ownerのメンバーのみがsp_addsynctriggersを実行できます。