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为位,默认值为 0
.
0
表示没有标识范围支持。1
启用自动标识范围处理。
[ @independent_agent = ] independent_agent
指示此发布是否有单个分发代理(独立代理),还是每个发布数据库和订阅数据库对(共享代理)有一个分发代理。 @independent_agent为位,默认值为 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 及更高版本时,必须显式设置为2
@pubversion。
[ @dump_cmds = ] dump_cmds
标识为仅供参考。 不支持。 不保证以后的兼容性。
返回代码值
0
(成功)或 1
(失败)。
注解
sp_addsynctriggers
由分发代理用作订阅初始化的一部分。 此存储过程通常不是由用户运行,但如果用户需要手动设置无同步订阅,则此存储过程可能很有用。
权限
只有 sysadmin 固定服务器角色的成员或db_owner固定数据库角色的成员才能执行sp_addsynctriggers
。