sp_article_validation (Transact-SQL)

适用于SQL Server Azure SQL 托管实例

为指定项目启动数据验证请求。 此存储过程在发布服务器上的发布数据库中执行,或者在订阅服务器上的订阅数据库中执行。

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'

项目所在的发布的名称。 @publicationsysname,无默认值。

[ @article = ] N'article'

要验证的项目的名称。 @articlesysname,无默认值。

[ @rowcount_only = ] rowcount_only

指定是否只返回表的行计数。 @rowcount_only为 smallint,默认值为 1.

  • 如果 0执行行计数和 SQL Server 7.0 兼容的校验和。
  • 如果 1仅执行行计数检查。
  • 如果 2执行行计数和二进制校验和。

[ @full_or_fast = ] full_or_fast

用于计算行计数的方法。 @full_or_fasttinyint,可以是以下值之一:

说明
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