sp_addsynctriggers (Transact-SQL)
適用於:SQL Server
在訂閱者端建立觸發程式,並搭配所有類型的可更新訂閱使用 (立即、佇列和立即更新,並以佇列更新作為故障轉移)。 這個預存程式會在訂閱資料庫的訂閱者端執行。
重要
應該使用sp_script_synctran_commands程式,sp_addsynctrigger
而不是 。 sp_script_synctran_commands會產生包含呼叫的sp_addsynctrigger
腳本。
語法
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
。