sp_article_validation (Transact-SQL)

Applies to: SQL Server Azure SQL Managed Instance

Initiates a data validation request for the specified article. This stored procedure is executed at the Publisher on the publication database and at the Subscriber on the subscription database.

Transact-SQL syntax conventions


sp_article_validation [ @publication = ] 'publication'  
    [ , [ @article = ] 'article' ]  
    [ , [ @rowcount_only = ] type_of_check_requested ]  
    [ , [ @full_or_fast = ] full_or_fast ]  
    [ , [ @shutdown_agent = ] shutdown_agent ]  
    [ , [ @subscription_level = ] subscription_level ]  
    [ , [ @reserved = ] reserved ]  
    [ , [ @publisher = ] 'publisher' ]  


[ @publication = ] 'publication' Is the name of the publication in which the article exists. publication is sysname, with no default.

[ @article = ] 'article' Is the name of the article to validate. article is sysname, with no default.

[ @rowcount_only = ] type_of_check_requested Specifies if only the rowcount for the table is returned. type_of_check_requested is smallint, with a default of 1.

If 0, perform a rowcount and a Microsoft SQL Server 7.0 compatible checksum.

If 1, perform a rowcount check only.

If 2, perform a rowcount and binary checksum.

[ @full_or_fast = ] full_or_fast Is the method used to calculate the rowcount. full_or_fast is tinyint, and can be one of these values.

Value Description
0 Performs full count using COUNT(*).
1 Performs fast count from sysindexes.rows. Counting rows in sysindexes is faster than counting rows in the actual table. However, sysindexes is updated lazily, and the rowcount may not be accurate.
2 (default) Performs conditional fast counting by first trying the fast method. If fast method shows differences, reverts to full method. If expected_rowcount is NULL and the stored procedure is being used to get the value, a full COUNT(*) is always used.

[ @shutdown_agent = ] shutdown_agent Specifies if the Distribution agent should shut down immediately upon completion of the validation. shutdown_agent is bit, with a default of 0. If 0, the Distribution Agent does not shut down. If 1, the Distribution Agent shuts down after the article is validated.

[ @subscription_level = ] subscription_level Specifies whether or not the validation is picked up by a set of subscribers. subscription_level is bit, with a default of 0. If 0, validation is applied to all Subscribers. If 1, validation is only applied to a subset of the Subscribers specified by calls to sp_marksubscriptionvalidation in the current open transaction.

[ @reserved = ] reserved

Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

[ @publisher = ] 'publisher' Specifies a non- Microsoft SQL Server Publisher. publisher is sysname, with a default of NULL.


publisher should not be used when requesting validation on a SQL Server Publisher.

Return Code Values

0 (success) or 1 (failure)


sp_article_validation is used in transactional replication.

sp_article_validation causes validation information to be gathered on the specified article and posts a validation request to the transaction log. When the Distribution Agent receives this request, the Distribution Agent compares the validation information in the request to the Subscriber table. The results of the validation are displayed in the Replication Monitor and in SQL Server Agent alerts.


Only users with SELECT ALL permissions on the source table for the article being validated can execute sp_article_validation.

See Also

Validate Replicated Data
sp_marksubscriptionvalidation (Transact-SQL)
sp_publication_validation (Transact-SQL)
sp_table_validation (Transact-SQL)
System Stored Procedures (Transact-SQL)