sp_addsynctriggers (Transact-SQL)

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

重要说明重要提示

应使用 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_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,默认值为 00 表示没有标识范围支持,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)

概念

事务复制的可更新订阅