sp_publication_validation (Transact-SQL)
适用于: SQL Server Azure SQL 托管实例
为指定发布中的每个项目启动项目验证请求。 此存储过程在发布服务器上对发布数据库执行。
语法
sp_publication_validation
[ @publication = ] N'publication'
[ , [ @rowcount_only = ] rowcount_only ]
[ , [ @full_or_fast = ] full_or_fast ]
[ , [ @shutdown_agent = ] shutdown_agent ]
[ , [ @publisher = ] N'publisher' ]
[ ; ]
参数
[ @publication = ] N'publication'
发布的名称。 @publication 为 sysname,无默认值。
[ @rowcount_only = ] rowcount_only
指定是否仅返回表的行计数。 @rowcount_only为 smallint,可以是以下值之一。
值 | 说明 |
---|---|
0 |
执行 SQL Server 7.0 兼容的校验和。 注意: 水平筛选项目时,将执行行计数操作,而不是校验和操作。 |
1 (默认值) |
仅执行行计数检查。 |
2 |
执行行计数和二进制校验和。 |
[ @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 = ] N'publisher'
指定非 SQL Server 发布服务器。 @publisher为 sysname,默认值为 NULL
.
在 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
。