sp_addsynctriggers (Transact-SQL)

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

ms189766.note(zh-cn,SQL.90).gif重要提示:
应使用 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'
    发布服务器的名称。publishersysname,无默认值。
  • [ @publisher_db=] 'publisher_db'
    发布服务器数据库名。publisher_dbsysname,无默认值。如果为 NULL,则使用当前数据库。
  • [ @publication = ] 'publication'
    发布的名称。Publicationsysname,无默认值。
  • [ @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)

其他资源

事务复制的可更新订阅

帮助和信息

获取 SQL Server 2005 帮助