sp_publication_validation (Transact-SQL)

对指定发布中的每个项目启动项目验证请求。此存储过程在发布服务器的发布数据库中执行。

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

语法

sp_publication_validation [ @publication = ] 'publication'
    [ , [ @rowcount_only = ] type_of_check_requested ]
    [ , [ @full_or_fast = ] full_or_fast ]
    [ , [ @shutdown_agent = ] shutdown_agent ]
    [ , [ @publisher = ] 'publisher' ]

参数

  • [@publication=] **'**publication'
    发布的名称。publication 的数据类型为 sysname,无默认值。
  • [@rowcount_only=] rowcount_only
    是否只返回表的行计数。rowcount_only 的数据类型为 smallint,可以是下列值之一。

  • [@full_or_fast=] full_or_fast
    用于计算行计数的方法。full_or_fast 的数据类型为 tinyint,可以是下列值之一。

    说明

    0

    使用 COUNT(*) 进行完整计数。

    1

    sysindexes.rows 进行快速计数。在 sys.sysindexes 中对行进行计数比在实际表中对行计数要快得多。但是,因为 sys.sysindexes 是惰性更新的,所以行数可能不准确。

    2(默认值)

    首先尝试使用快速方法进行条件性快速计数。如果快速方法显示出差异,则转而使用完整方法。如果 expected_rowcount 的值为 NULL,而且正在使用存储过程获取该值,则始终使用完整 COUNT(*)。

  • [ @shutdown_agent=] shutdown_agent
    在完成验证时,分发代理是否应当立即关闭。shutdown_agent 的数据类型为 bit,默认值为 0。如果为 0,则不关闭复制代理。如果为 1,则验证完最后一个项目之后将关闭复制代理。
  • [ @publisher= ] 'publisher'
    指定一个非 SQL Server 发布服务器。publisher 的数据类型为 sysname,默认值为 NULL。

    ms173543.note(zh-cn,SQL.90).gif注意:
    当请求对 SQL Server 发布服务器进行验证时不应该使用 publisher

返回代码值

0(成功)或 1(失败)

备注

sp_publication_validation 用于事务复制。

在激活了与发布关联的项目后,可以随时调用 sp_publication_validation。可以手动运行一次此过程,或将其作为验证数据的定期计划作业的一部分。

如果应用程序有即时更新订阅服务器,则 sp_publication_validation 可能检测到假错误。sp_publication_validation 首先在发布服务器中计算行计数或校验和,然后在订阅服务器中进行同样的计算。由于在发布服务器中完成行计数或校验和之后,但在订阅服务器中完成行计数或校验和之前,即时更新触发器可以将更新从订阅服务器传播到发布服务器,因此值可能会更改。若要确保在验证发布时,在订阅服务器和发布服务器中的值不发生更改,请在验证期间在发布服务器中停止 Microsoft 分布式事务处理协调器 (MS DTC) 服务。

权限

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

请参阅

参考

sp_article_validation (Transact-SQL)
sp_table_validation (Transact-SQL)
系统存储过程 (Transact-SQL)

其他资源

How to: Validate Data at the Subscriber (Replication Transact-SQL Programming)

帮助和信息

获取 SQL Server 2005 帮助