sp_publication_validation (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较小,可以是以下值之一。
值 | 说明 |
---|---|
0 | 执行 SQL Server 7.0 兼容的校验和。 注意:水平筛选项目时,将执行行计数操作,而不是校验和操作。 |
1 (默认值) | 仅执行行计数检查。 |
2 | 执行行计数和二进制校验和。 注意:对于 SQL Server 版本 7.0 订阅服务器,仅执行行计数验证。 |
[ @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 为 位,默认值为 0。 如果 为 0,则复制代理不会关闭。 如果 为 1,复制代理会在最后一篇文章验证后关闭。
[ @publisher = ] 'publisher'
指定非 SQL Server 发布服务器。 publisher 为 sysname,默认值为 NULL。
注意
在 SQL Server 发布服务器上请求验证时,不应使用发布 服务器。
返回代码值
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)