sp_addsynctriggers (Transact-SQL)
在订阅服务器上创建与所有类型的可更新订阅(立即、排队和将排队更新作为故障转移的立即更新)一起使用的触发器。此存储过程在订阅服务器的订阅数据库中执行。
重要提示: |
---|
应使用 sp_script_synctran_commands 过程代替 sp_addsynctrigger。sp_script_synctran_commands 生成包含 sp_addsynctrigger 调用的脚本。 |
语法
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_col 的数据类型为 sysname,默认值为 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,默认值为 0。0 表示没有标识范围支持,1 表示启用自动标识范围处理。
- [ @independent_agent = ] independent_agent
指示只有一个用于该发布的分发代理(独立代理),还是每个发布数据库和订阅数据库对都有一个分发代理(共享代理)。该值反映了发布服务器上所定义发布的 independent_agent 属性值。independent_agent 的数据类型为 bit,默认值为 0。如果为 0,则代理为共享代理。如果为 1,则代理为独立代理。
- [ @distributor=] 'distributor'
分发服务器的名称。distributor 的数据类型为 sysname,无默认值。
- [ @pubversion= ] pubversion
指示发布服务器的版本。pubversion 的数据类型为 int,默认值为 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)