sp_article_validation (Transact-SQL)
为指定项目启动数据验证请求。 此存储过程在发布服务器上的发布数据库中执行,或者在订阅服务器上的订阅数据库中执行。
语法
sp_article_validation
[ @publication = ] N'publication'
, [ @article = ] N'article'
[ , [ @rowcount_only = ] rowcount_only ]
[ , [ @full_or_fast = ] full_or_fast ]
[ , [ @shutdown_agent = ] shutdown_agent ]
[ , [ @subscription_level = ] subscription_level ]
[ , [ @reserved = ] reserved ]
[ , [ @publisher = ] N'publisher' ]
[ ; ]
参数
[ @publication = ] N'publication'
项目所在的发布的名称。 @publication 为 sysname,无默认值。
[ @article = ] N'article'
要验证的项目的名称。 @article 为 sysname,无默认值。
[ @rowcount_only = ] rowcount_only
指定是否只返回表的行计数。 @rowcount_only为 smallint,默认值为 1
.
- 如果
0
执行行计数和 SQL Server 7.0 兼容的校验和。 - 如果
1
仅执行行计数检查。 - 如果
2
执行行计数和二进制校验和。
[ @full_or_fast = ] full_or_fast
用于计算行计数的方法。 @full_or_fast 是 tinyint,可以是以下值之一:
值 | 说明 |
---|---|
0 |
使用 COUNT(*) . 执行完整计数。 |
1 |
从 sysindexes.rows . 执行快速计数。 对行 sysindexes 进行计数比对实际表中的行进行计数更快。 但是, sysindexes 延迟更新,行计数可能不准确。 |
2 (默认值) |
首先尝试使用快速方法执行条件性快速计数。 如果快速方法显示出差异,则转而使用完整方法。 如果 expected_rowcount 使用的是 NULL 存储过程来获取该值,则始终使用完整 COUNT(*) 。 |
[ @shutdown_agent = ] shutdown_agent
指定分发代理是否应在完成验证后立即关闭。 @shutdown_agent为位,默认值为 0
.
- 如果
0
,则分发代理不会关闭。 - 如果
1
,则分发代理在验证项目后关闭。
[ @subscription_level = ] subscription_level
指定是否由订阅服务器集来拾取验证。 @subscription_level为位,默认值为 0
.
- 如果
0
,验证将应用于所有订阅服务器。 - 如果
1
验证仅适用于当前打开事务中调用sp_marksubscriptionvalidation
指定的订阅服务器的子集。
[ @reserved = ] reserved
标识为仅供参考。 不支持。 不保证以后的兼容性。
[ @publisher = ] N'publisher'
指定非 SQL Server 发布服务器。 @publisher为 sysname,默认值为 NULL
.
在 SQL Server 发布服务器上请求验证时,不应使用@publisher。
返回代码值
0
(成功)或 1
(失败)。
注解
sp_article_validation
用于事务复制。
sp_article_validation
导致在指定文章上收集验证信息,并将验证请求发布到事务日志。 分发代理接收到该请求后,将该请求中的验证信息与订阅服务器表进行比较。 验证结果显示在复制监视器和SQL Server 代理警报中。
权限
只有对要验证的项目具有 SELECT ALL
源表权限的用户才能执行 sp_article_validation
。