sp_addsynctriggers (Transact-SQL)

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

ms189766.note(zh-tw,SQL.90).gif重要事項:
您應該利用 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_tablesysname,沒有預設值。
  • [ @sub_table_owner=] 'sub_table_owner'
    這是訂閱者資料表的擁有者名稱。sub_table_ownersysname,沒有預設值。
  • [ @publisher=] 'publisher'
    這是發行者伺服器的名稱。publishersysname,沒有預設值。
  • [ @publisher_db=] 'publisher_db'
    這是發行者資料庫的名稱。publisher_dbsysname,沒有預設值。如果是 NULL,就會使用目前的資料庫。
  • [ @publication=] 'publication'
    這是發行集的名稱。Publicationsysname,沒有預設值。
  • [ @ins_proc=] 'ins_proc'
    這是支援在發行者端之同步交易插入的預存程序名稱。ins_procsysname,沒有預設值。
  • [ @upd_proc=] 'upd_proc'
    這是支援在發行者端之同步交易更新的預存程序名稱。ins_procsysname,沒有預設值。
  • [ @del_proc=] 'del_proc'
    這是支援在發行者端之同步交易刪除的預存程序名稱。ins_procsysname,沒有預設值。
  • [ @cftproc = ] 'cftproc'
    這是允許佇列更新的發行集所用的自動產生程序名稱。cftprocsysname,沒有預設值。如果是允許立即更新的發行集,這個值便是 NULL。這個參數適用於允許佇列更新 (佇列更新和以佇列更新進行容錯移轉的立即更新) 的發行集。
  • [ @proc_owner = ] 'proc_owner'
    在發行者中,指定用來建立更新發行集 (佇列和/或立即) 所有自動產生的預存程序之使用者帳戶。proc_ownersysname,沒有預設值。
  • [ @identity_col=] 'identity_col'
    這是在發行者端之識別資料行的名稱。identity_colsysname,預設值是 NULL。
  • [ @ts_col=] 'timestamp_col'
    這是在發行者端之 timestamp 資料行的名稱。timestamp_colsysname,預設值是 NULL。
  • [ @filter_clause=] 'filter_clause'
    這是定義水平篩選的限制 (WHERE) 子句。當輸入限制子句時,請省略 WHERE 關鍵字。filter_clausenvarchar(4000),預設值是 NULL。
  • [ @primary_key_bitmap =] 'primary_key_bitmap'
    這是資料表中之主索引鍵資料行的點陣圖。primary_key_bitmapvarbinary(4000),沒有預設值。
  • [ @identity_support = ] identity_support
    在使用佇列更新時,啟用和停用自動識別範圍處理。identity_supportbit,預設值是 00 表示沒有識別範圍支援,1 會啟用自動識別範圍處理。
  • [ @independent_agent = ] independent_agent
    指出這個發行集有單一散發代理程式 (獨立代理程式),或每一組發行集資料庫和訂閱資料庫有一個散發代理程式 (共用代理程式)。這個值反映發行者端所定義之發行集的 independent_agent 屬性值。independent_agent 是一個位元,預設值是 0。如果是 0,代理程式就是共用代理程式。如果是 1,代理程式是一個獨立代理程式。
  • [ @distributor = ] 'distributor'
    這是散發者的名稱。distributorsysname,沒有預設值。
  • [ @pubversion= ] pubversion
    指出發行者的版本。pubversionint,預設值是 1。1 表示發行者版本是 Microsoft SQL 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

請參閱

參考

sp_script_synctran_commands (Transact-SQL)
系統預存程序 (Transact-SQL)

其他資源

交易式複寫的可更新訂閱

說明及資訊

取得 SQL Server 2005 協助