sp_addsynctriggers (Transact-SQL)

适用于SQL Server

在订阅服务器上创建触发器,用于所有类型的可更新订阅(立即、排队和立即更新,并将排队更新作为故障转移)。 此存储过程在订阅服务器的订阅数据库中执行。

重要

应使用sp_script_synctran_commands过程而不是 sp_addsynctriggersp_script_synctran_commands 生成包含调用的 sp_addsynctrigger 脚本。

Transact-SQL 语法约定

语法

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_dbsysname,无默认值。 如果使用 NULL当前数据库。

[ @publication = ] N'publication'

发布的名称。 @publicationsysname,无默认值。

[ @ins_proc = ] N'ins_proc'

在发布服务器上支持同步事务插入的存储过程的名称。 @ins_procsysname,无默认值。

[ @upd_proc = ] N'upd_proc'

在发布服务器上支持同步事务更新的存储过程的名称。 @upd_proc为 sysname,无默认值。

[ @del_proc = ] N'del_proc'

在发布服务器上支持同步事务删除的存储过程的名称。 @del_procsysname,无默认值。

[ @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'

分发服务器的名称。 @distributorsysname,没有默认值。

[ @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