Condividi tramite


How to: Validate Data at the Subscriber (Replication Transact-SQL Programming)

Replication enables you to programmatically validate that data at the Subscriber matches data at the Publisher using replication stored procedures, where the procedures used depend on the type of replication topology.

To validate data for all articles in a transactional publication

  1. At the Publisher on the publication database, execute sp_publication_validation (Transact-SQL). Specify @publication and one of the following values for @rowcount_only:

    • 1 - rowcount check only (the default)
    • 2 - rowcount and binary checksum.

    [!NOTA] When you execute sp_publication_validation (Transact-SQL), sp_article_validation (Transact-SQL) is executed for each article in the publication. To successfully execute sp_publication_validation (Transact-SQL), you must have SELECT permissions on all columns in the published base tables.

  2. (Optional) Start the Distribution Agent for each subscription if it is not already running. For more information, see Procedura: Sincronizzazione di una sottoscrizione pull (programmazione della replica) and Procedura: Sincronizzazione di una sottoscrizione push (programmazione della replica).

  3. Check the agent output for the result of the validation. For more information, see Convalida dei dati replicati.

To validate data for a single article in a transactional publication

  1. At the Publisher on the publication database, execute sp_article_validation (Transact-SQL). Specify @publication, the name of the article for @article, and one of the following values for @rowcount_only:

    • 1 - Rowcount check only (the default)
    • 2 - Rowcount and binary checksum.

    [!NOTA] To successfully execute sp_article_validation (Transact-SQL), you must have SELECT permissions on all columns in the published base table.

  2. (Optional) Start the Distribution Agent for each subscription if it is not already running. For more information, see Procedura: Sincronizzazione di una sottoscrizione pull (programmazione della replica) and Procedura: Sincronizzazione di una sottoscrizione push (programmazione della replica).

  3. Check the agent output for the result of the validation. For more information, see Convalida dei dati replicati.

To validate data for a single subscriber to a transactional publication

  1. At the Publisher on the publication database, open an explicit transaction using BEGIN TRANSACTION (Transact-SQL).

  2. At the Publisher on the publication database, execute sp_marksubscriptionvalidation (Transact-SQL). Specify the publication for @publication, the name of the Subscriber for @subscriber, and the name of the subscription database for @destination_db.

  3. (Optional) Repeat step 2 for each subscription being validated.

  4. At the Publisher on the publication database, execute sp_article_validation (Transact-SQL). Specify @publication, the name of the article for @article, and one of the following values for @rowcount_only:

    • 1 - Rowcount check only (the default)
    • 2 - Rowcount and binary checksum.

    [!NOTA] To successfully execute sp_article_validation (Transact-SQL), you must have SELECT permissions on all columns in the published base table.

  5. At the Publisher on the publication database, commit the transaction using COMMIT TRANSACTION (Transact-SQL).

  6. (Optional) Repeat steps 1 through 5 for each article being validated.

  7. (Optional) Start the Distribution Agent if it is not already running. For more information, see Procedura: Sincronizzazione di una sottoscrizione pull (programmazione della replica) and Procedura: Sincronizzazione di una sottoscrizione push (programmazione della replica).

  8. Check the agent output for the result of the validation. For more information, see Procedura: Convalida dei dati nel Sottoscrittore (SQL Server Management Studio).

To validate data in all subscriptions to a merge publication

  1. At the Publisher on the publication database, execute sp_validatemergepublication (Transact-SQL). Specify @publication and one of the following values for @level:

    • 1 - Rowcount-only validation.
    • 3 - Rowcount binary checksum validation.

    This marks all subscriptions for validation.

  2. Start the merge agent for each subscription. For more information, see Procedura: Sincronizzazione di una sottoscrizione pull (programmazione della replica) and Procedura: Sincronizzazione di una sottoscrizione push (programmazione della replica).

  3. Check the agent output for the result of the validation. For more information, see Procedura: Convalida dei dati nel Sottoscrittore (SQL Server Management Studio).

To validate data in selected subscriptions to a merge publication

  1. At the Publisher on the publication database, execute sp_validatemergesubscription (Transact-SQL). Specify @publication, the name of the Subscriber for @subscriber, the name of the subscription database for @subscriber_db, and one of the following values for @level:

    • 1 - Rowcount-only validation.
    • 3 - Rowcount binary checksum validation.

    This marks the selected subscription for validation.

  2. Start the merge agent for each subscription. For more information, see Procedura: Sincronizzazione di una sottoscrizione pull (programmazione della replica) and Procedura: Sincronizzazione di una sottoscrizione push (programmazione della replica).

  3. Check the agent output for the result of the validation.

  4. Repeat steps 1 through 3 for each subscription being validated.

[!NOTA] A subscription to a merge publication can also be validated at the end of a synchronization by specifying the -Validate parameter when running the Replication Merge Agent.

To validate data in a subscription using Merge Agent parameters

  1. Start the Merge Agent at the Subscriber (pull subscription) or at the Distributor (push subscription) from the command prompt in one of the following ways.

    • Specifying a value of 1 (rowcount) or 3 (rowcount and binary checksum) for the -Validate parameter.
    • Specifying rowcount validation or rowcount and checksum validation for the -ProfileName parameter.

    For more information, see Procedura: Sincronizzazione di una sottoscrizione pull (programmazione della replica) or Procedura: Sincronizzazione di una sottoscrizione push (programmazione della replica).

Vedere anche

Altre risorse

Profili degli agenti di replica
Convalida dei dati replicati

Guida in linea e informazioni

Assistenza su SQL Server 2005