Transact-SQL 参考

sp_publication_validation

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

语法

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

参数

[@publication =] 'publication'

是发布名。publication 的数据类型为 sysname,无默认值。

[@rowcount_only =] type_of_check_requested

表示是否只返回表的行数。rowcount_only 的数据类型为 smallint,其默认值为 1。type_of_check_requested 的数据类型为 smallint,其默认值为 1,如果是 0,则执行 SQL Server 7.0 兼容的校验值。如果为 1,则只执行行数检查。如果为 2,则执行行数和校验值。

[@full_or_fast =] full_or_fast

是计算行数的方法。full_or_fast 的数据类型为 tinyint,默认值为 2,可以是下列值之一。

描述
0 用 COUNT(*) 进行完整计数。
1 sysindexes.rows 进行快速计数。在 sysindexes 中对行进行计数比在实表中计数快得多。但由于很少对 sysindexes 进行更新,所以行计数可能不准确。
2(默认值) 首先使用快速方法进行条件快速计数。如果快速方法显示出差异,则转而使用完整方法。如果 expected_rowcount 的值为 NULL,而且正在使用存储过程获取该值,则始终使用完整 COUNT(*)。

[@shutdown_agent =] shutdown_agent

表示分发代理程序是否应在完成验证后立即关闭。shutdown_agent 的数据类型为 bit,默认值 0。如果为 0,表示复制代理程序不关闭。如果为 1,则表示在验证完最后一个项目后,复制代理程序将关闭。

返回代码值

0(成功)或 1(失败)

注释

sp_publication_validation 用于快照复制和事务复制。

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

如果应用程序有即时更新订阅服务器,则 sp_publication_validation 可以检测虚假的错误。sp_publication_validation 先计算发布服务器上的行数或校验值,然后计算订阅服务器上的行数或校验值。因为在发布服务器上验证完行数和校验值后,但是在订阅服务器上验证行数或校验值之前,即时更新触发器可能将更新从订阅服务器传播到发布服务器,所以该值无法更改。为确保订阅服务器和发布服务器上的值在验证发布期间不更改,请在验证期间停止发布服务器上的 MSDTC 服务。

权限

除非由 sysadmindb_owner 的成员执行,否则,必须在项目中使用的基表的所有列上具有 SELECT 权限(即时项目为垂直分区)才能执行 sp_publication_validation

请参见

sp_article_validation

sp_table_validation

系统存储过程