sp_marksubscriptionvalidation (Transact-SQL)

将当前打开的事务标记为指定订阅服务器的订阅级验证事务。此存储过程在发布服务器的发布数据库中执行。

主题链接图标Transact-SQL 语法约定

语法

sp_marksubscriptionvalidation [ @publication = ] 'publication'
        , [ @subscriber = ] 'subscriber'
        , [ @destination_db = ] 'destination_db'
    [ , [ @publisher = ] 'publisher' ]

参数

  • [ @publication= ] 'publication'
    发布的名称。publicationsysname,无默认值。
  • [ @subscriber= ] 'subscriber'
    订阅服务器的名称。subscriber 是 sysname,无默认值。
  • [ @destination_db=] 'destination_db'
    分发数据库的名称。destination_dbsysname,没有默认值。
  • [ @publisher= ] 'publisher'
    指定一个非 Microsoft SQL Server 发布服务器。publishersysname,默认值为 NULL。

    ms189756.note(zh-cn,SQL.90).gif注意:
    publisher 不应用于属于 SQL Server 发布服务器的发布。

返回代码值

0(成功)或 1(失败)

备注

sp_marksubscriptionvalidation 用于事务复制。

sp_marksubscriptionvalidation 不支持非 SQL Server 订阅服务器。

对于非 SQL Server 发布服务器,不能在显式事务内执行 sp_marksubscriptionvalidation。这是因为在用于访问发布服务器的链接服务器连接上,不支持显式事务。

sp_marksubscriptionvalidation 必须与 sp_article_validation (Transact-SQL) 一起使用,为 subscription_level 指定值 1,并且还可以与其他 sp_marksubscriptionvalidation 调用一起使用,为其他订阅服务器标记当前打开的事务。

权限

只有 sysadmin 固定服务器角色成员或 db_owner 固定数据库角色成员才能执行 sp_marksubscriptionvalidation

示例

下面的查询可应用到发布数据库,以发布订阅级验证命令。下列命令将由指定的订阅服务器的分发代理程序挑选。请注意,第一个事务验证项目 "art1",而第二个事务验证 "art2"。另外,请注意在事务中已封装了对 sp_marksubscriptionvalidationsp_article_validation (Transact-SQL) 调用。我们建议每个事务仅调用一个 sp_article_validation (Transact-SQL)。这是因为 sp_article_validation (Transact-SQL) 在事务持续期间的源表中具有一个共享的表锁。应尽量缩短事务以使并发最大化。

begin tran

exec sp_marksubscriptionvalidation @publication = 'pub1',
 @subscriber = 'Sub', @destination_db = 'SubDB'

exec sp_marksubscriptionvalidation @publication = 'pub1',
 @subscriber = 'Sub2', @destination_db = 'SubDB'

exec sp_article_validation @publication = 'pub1', @article = 'art1',
 @rowcount_only = 0, @full_or_fast = 0, @shutdown_agent = 0,
 @subscription_level = 1

commit tran

begin tran

exec sp_marksubscriptionvalidation @publication = 'pub1',
 @subscriber = 'Sub', @destination_db = 'SubDB'

exec sp_marksubscriptionvalidation @publication = 'pub1',
 @subscriber = 'Sub2', @destination_db = 'SubDB'

exec sp_article_validation @publication = 'pub1', @article = 'art2',
 @rowcount_only = 0, @full_or_fast = 0, @shutdown_agent = 0,
 @subscription_level = 1

commit tran

请参阅

参考

系统存储过程 (Transact-SQL)

其他资源

验证已复制的数据

帮助和信息

获取 SQL Server 2005 帮助