sp_addsynctriggers (Transact-SQL)

在訂閱者端建立搭配所有可更新訂閱類型 (立即、佇列和以佇列更新進行容錯移轉的立即更新) 來使用的觸發程序。這個預存程序執行於訂閱資料庫的訂閱者端。

重要注意事項重要事項

您應該利用 sp_script_synctran_commands 程序來取代 sp_addsynctriggersp_script_synctran_commands 會產生包含 sp_addsynctrigger 呼叫的指令碼。

主題連結圖示Transact-SQL 語法慣例

語法

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

引數

  • [@sub_table=] 'sub_table'
    這是訂閱者資料表的名稱。sub_table 是 sysname,沒有預設值。

  • [@sub_table_owner=] 'sub_table_owner'
    這是訂閱者資料表的擁有者名稱。sub_table_owner 是 sysname,沒有預設值。

  • [@publisher=] 'publisher'
    這是發行者伺服器的名稱。publisher 是 sysname,沒有預設值。

  • [@publisher_db=] 'publisher_db'
    這是發行者資料庫的名稱。publisher_db 是 sysname,沒有預設值。如果是 NULL,就會使用目前的資料庫。

  • [@publication=] 'publication'
    這是發行集的名稱。Publication 是 sysname,沒有預設值。

  • [@ins_proc=] 'ins_proc'
    這是支援在發行者端之同步交易插入的預存程序名稱。ins_proc 是 sysname,沒有預設值。

  • [@upd_proc=] 'upd_proc'
    這是支援在發行者端之同步交易更新的預存程序名稱。ins_proc 是 sysname,沒有預設值。

  • [@del_proc=] 'del_proc'
    這是支援在發行者端之同步交易刪除的預存程序名稱。ins_proc 是 sysname,沒有預設值。

  • [@cftproc = ] 'cftproc'
    這是允許佇列更新的發行集所用的自動產生程序名稱。cftproc 是 sysname,沒有預設值。如果是允許立即更新的發行集,這個值便是 NULL。這個參數適用於允許佇列更新 (佇列更新和以佇列更新進行容錯移轉的立即更新) 的發行集。

  • [@proc_owner = ] 'proc_owner'
    在發行者中,指定用來建立更新發行集 (佇列和/或立即) 所有自動產生的預存程序之使用者帳戶。proc_owner 是 sysname,沒有預設值。

  • [@identity_col=] 'identity_col'
    這是在發行者端之識別欄位的名稱。identity_colsysname,預設值是 NULL。

  • [@ts_col=] 'timestamp_col'
    這是在發行者端之 timestamp 資料行的名稱。timestamp_col 是 sysname,預設值是 NULL。

  • [@filter_clause=] '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,預設值是 00 表示沒有識別範圍支援,1 會啟用自動識別範圍處理。

  • [@independent_agent = ] independent_agent
    指出這個發行集有單一散發代理程式 (獨立代理程式),或每一組發行集資料庫和訂閱資料庫有一個散發代理程式 (共用代理程式)。這個值反映發行者端所定義之發行集的 independent_agent 屬性值。independent_agent 是一個位元,預設值是 0。如果是 0,代理程式就是共用代理程式。如果是 1,代理程式是一個獨立代理程式。

  • [@distributor = ] 'distributor'
    這是散發者的名稱。distributor 是 sysname,沒有預設值。

  • [@pubversion= ] pubversion
    指出發行者的版本。pubversion 是 int,預設值是 1。1 表示發行者版本是 MicrosoftSQL Server 2000 Service Pack 2 或更早的版本;2 表示發行者是 SQL Server 2000 Service Pack 3 (SP3) 或更新的版本。當發行者版本是 SQL Server 2000 SP3 或更新的版本時,pubversion 必須明確設為 2

傳回碼值

0 (成功) 或 1 (失敗)

備註

在訂閱初始化時,散發代理程式會使用 sp_addsynctriggers。使用者通常不會執行這個預存程序,但如果使用者需要手動設定非同步訂閱,它可能很有用。

權限

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