Share via


sp_addsynctriggers (Transact-SQL)

適用於:SQL Server

在訂閱者端建立觸發程式,並搭配所有類型的可更新訂閱使用 (立即、佇列和立即更新,並以佇列更新作為故障轉移)。 這個預存程式會在訂閱資料庫的訂閱者端執行。

重要

應該使用sp_script_synctran_commands程式,sp_addsynctrigger而不是 。 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_table為 sysname,沒有預設值。

[ @sub_table_owner = ] N'sub_table_owner'

訂閱者數據表的擁有者名稱。 @sub_table_owner為 sysname,沒有預設值。

[ @publisher = ] N'publisher'

發行者伺服器的名稱。 @publisher為 sysname,沒有預設值。

[ @publisher_db = ] N'publisher_db'

發行者資料庫的名稱。 @publisher_db為 sysname,沒有預設值。 如果 NULL為 ,則會使用目前的資料庫。

[ @publication = ] N'publication'

發行集的名稱。 @publication為 sysname,沒有預設值。

[ @ins_proc = ] N'ins_proc'

支援在發行者端插入同步交易的預存程式名稱。 @ins_proc為 sysname,沒有預設值。

[ @upd_proc = ] N'upd_proc'

支援發行者端同步交易更新的預存程序名稱。 @upd_proc為 sysname,沒有預設值。

[ @del_proc = ] N'del_proc'

支援發行者端同步交易刪除的預存程式名稱。 @del_proc為 sysname,沒有預設值。

[ @cftproc = ] N'cftproc'

允許佇列更新的發行集所使用的自動產生程式名稱。 @cftproc為 sysname,沒有預設值。 對於允許立即更新的發行集,此值為 NULL。 此參數適用於允許佇列更新的發行集(使用佇列更新做為故障轉移的佇列更新和立即更新)。

[ @proc_owner = ] N'proc_owner'

指定發行者中用來更新發行集的所有自動產生的預存程式(佇列和/或立即)的用戶帳戶。 @proc_owner為 sysname,沒有預設值。

[ @identity_col = ] N'identity_col'

發行者端的識別數據行名稱。 @identity_col為 sysname,預設值為 NULL

[ @ts_col = ] N'ts_col'

發行者端時間戳數據行的名稱@ts_col為 sysname,預設值為 NULL

[ @filter_clause = ] N'filter_clause'

定義水平篩選的限制 (WHERE) 子句。 輸入限制子句時,請省略關鍵詞 WHERE。 @filter_clause為 nvarchar(4000),預設值為 NULL

[ @primary_key_bitmap = ] primary_key_bitmap

數據表中主鍵數據行的位對應。 @primary_key_bitmap為 varbinary(4000),沒有預設值。

[ @identity_support = ] identity_support

啟用和停用使用佇列更新時自動識別範圍處理。 @identity_support為 bit,預設值為 0

  • 0 表示沒有身分識別範圍支援。
  • 1 啟用自動識別範圍處理。

[ @independent_agent = ] independent_agent

指出此發行集是否有單一 散發代理程式(獨立代理程式),或每個發行集資料庫和訂閱資料庫組有一個 散發代理程式(共用代理程式)。 @independent_agent為 bit,預設值為 0。 這個值會 independent_agent 反映發行集在發行者端定義的發行集屬性值。

  • 如果 0為 ,則代理程式為共用代理程式。
  • 如果 1為 ,則代理程式是獨立的代理程式。

[ @distributor = ] N'distributor'

散發者的名稱。 @distributor為 sysname,沒有預設值。

[ @pubversion = ] pubversion

指出發行者的版本。 @pubversion為 int,預設值為 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由 散發代理程式 作為訂用帳戶初始化的一部分使用。 此預存程式通常不會由使用者執行,但如果使用者需要手動設定無同步訂閱,可能很有用。

權限

只有系統管理員固定伺服器角色或db_owner固定資料庫角色的成員才能執行 sp_addsynctriggers