sp_table_validation (Transact-SQL)sp_table_validation (Transact-SQL)

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Retourne des informations sur le nombre de lignes ou sur la somme de contrôle d'une table ou d'une vue indexée, ou bien compare ces informations avec la table ou la vue indexée spécifiée.Either returns rowcount or checksum information on a table or indexed view, or compares the provided rowcount or checksum information with the specified table or indexed view. Cette procédure stockée est exécutée sur la base de données de publication du serveur de publication et sur la base de données d'abonnement de l'Abonné.This stored procedure is executed at the Publisher on the publication database and at the Subscriber on the subscription database. Non pris en charge pour les serveurs de publication Oracle.Not supported for Oracle Publishers.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

  
sp_table_validation [ @table = ] 'table'  
    [ , [ @expected_rowcount = ] type_of_check_requested OUTPUT]  
    [ , [ @expected_checksum = ] expected_checksum OUTPUT]  
    [ , [ @rowcount_only = ] rowcount_only ]  
    [ , [ @owner = ] 'owner' ]  
    [ , [ @full_or_fast = ] full_or_fast ]  
    [ , [ @shutdown_agent = ] shutdown_agent ]  
    [ , [ @table_name = ] table_name ]  
    [ , [ @column_list = ] 'column_list' ]  

ArgumentsArguments

[ @table = ] 'table' Est le nom de la table.[ @table = ] 'table' Is the name of the table. table est sysname, sans valeur par défaut.table is sysname, with no default.

[ @expected_rowcount = ] expected_rowcountOUTPUT Spécifie s’il faut retourner le nombre attendu de lignes dans la table.[ @expected_rowcount = ] expected_rowcountOUTPUT Specifies whether to return the expected number of rows in the table. expected_rowcount est int, avec NULL comme valeur par défaut.expected_rowcount is int, with a default of NULL. Si la valeur est NULL, le nombre de lignes réel est retourné en tant que paramètre de sortie.If NULL, the actual rowcount is returned as an output parameter. Si une valeur est fournie, celle-ci est confrontée au nombre réel de lignes en vue d'une identification des éventuelles différences.If a value is provided, that value is checked against the actual rowcount to identify any differences.

[ @expected_checksum = ] expected_checksumOUTPUT Spécifie s’il faut retourner la somme de contrôle attendue pour la table.[ @expected_checksum = ] expected_checksumOUTPUT Specifies whether to return the expected checksum for the table. expected_checksum est numérique, avec NULL comme valeur par défaut.expected_checksum is numeric, with a default of NULL. Si la valeur est NULL, la somme de contrôle réelle est retournée en tant que paramètre de sortie.If NULL, the actual checksum is returned as an output parameter. Si une valeur est fournie, celle-ci est confrontée à la somme de contrôle réelle en vue d'une identification des éventuelles différences.If a value is provided, that value is checked against the actual checksum to identify any differences.

[ @rowcount_only = ] type_of_check_requested Spécifie le type de somme de contrôle ou du nombre de lignes à effectuer.[ @rowcount_only = ] type_of_check_requested Specifies what type of checksum or rowcount to perform. type_of_check_requested est smallint, avec une valeur par défaut 1.type_of_check_requested is smallint, with a default of 1.

Si 0, effectuer un décompte de lignes et un MicrosoftMicrosoft SQL ServerSQL Server somme de contrôle compatible 7.0.If 0, perform a rowcount and a MicrosoftMicrosoft SQL ServerSQL Server 7.0-compatible checksum.

Si 1, effectuer une vérification du nombre de lignes uniquement.If 1, perform a rowcount check only.

Si 2, effectuer une somme de contrôle du nombre de lignes et binaires.If 2, perform a rowcount and binary checksum.

[ @owner = ] 'owner' Est le nom du propriétaire de la table.[ @owner = ] 'owner' Is the name of the owner of the table. propriétaire est sysname, avec NULL comme valeur par défaut.owner is sysname, with a default of NULL.

[ @full_or_fast = ] full_or_fast La méthode est utilisée pour calculer le nombre de lignes.[ @full_or_fast = ] full_or_fast Is the method used to calculate the rowcount. full_or_fast est tinyint, avec une valeur par défaut 2, et peut prendre l’une des valeurs suivantes.full_or_fast is tinyint, with a default of 2, and can be one of these values.

ValueValue DescriptionDescription
00 Effectue un comptage total à l'aide de COUNT(*).Does full count using COUNT(*).
11 Effectue un comptage de rapide sysindexes.rows.Does fast count from sysindexes.rows. Le décompte de lignes sysindexes est beaucoup plus rapide que le décompte de lignes dans la table réelle.Counting rows in sysindexes is much faster than counting rows in the actual table. Toutefois, étant donné que sysindexes est tardivement mis à jour, le nombre de lignes peut être inexact.However, because sysindexes is lazily updated, the rowcount may not be accurate.
2 (par défaut)2 (default) Exécute un décompte rapide conditionnel en essayant d'abord la méthode rapide.Does conditional fast counting by first trying the fast method. Si la méthode rapide affiche des différences, revient à la méthode totale.If fast method shows differences, reverts to full method. Si expected_rowcount a la valeur NULL et la procédure stockée est en cours d’utilisation pour obtenir la valeur, un Count (*) complète est toujours utilisée.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 Si l’Agent de Distribution est en cours d’exécution sp_table_validation, spécifie si l’Agent de Distribution doit être fermé immédiatement à l’achèvement de la validation.[ @shutdown_agent = ] shutdown_agent If the Distribution Agent is executing sp_table_validation, specifies whether the Distribution Agent should shut down immediately upon completion of the validation. shutdown_agent est bits, avec une valeur par défaut 0.shutdown_agent is bit, with a default of 0. Si 0, l’agent de réplication ne s’arrête pas.If 0, the replication agent does not shut down. Si 1, l’erreur 20578 est déclenchée et l’agent de réplication est signalé à arrêter.If 1, error 20578 is raised and the replication agent is signaled to shut down. Ce paramètre est ignoré lorsque sp_table_validation exécuté directement par un utilisateur.This parameter is ignored when sp_table_validation is executed directly by a user.

[ @table_name = ] table_name Est le nom de la table de la vue utilisée pour les messages de sortie.[ @table_name = ] table_name Is the table name of the view used for output messages. table_name est sysname, avec une valeur par défaut **@table** .table_name is sysname, with a default of **@table**.

[ @column_list = ] 'column_list' Est la liste des colonnes qui doivent être utilisées dans la fonction de somme de contrôle.[ @column_list = ] 'column_list' Is the list of columns that should be used in the checksum function. column_list est nvarchar (4000) , avec NULL comme valeur par défaut.column_list is nvarchar(4000), with a default of NULL. Active la validation d'articles de fusion pour spécifier une liste de colonnes excluant les colonnes calculées et les colonnes timestamp.Enables validation of merge articles to specify a column list that excludes computed and timestamp columns.

Valeurs des codes de retourReturn Code Values

Si une validation de somme de contrôle et de la somme de contrôle attendue est égal la somme de contrôle dans la table, sp_table_validation retourne un message que le tableau passé la validation de somme de contrôle.If performing a checksum validation and the expected checksum equals the checksum in the table, sp_table_validation returns a message that the table passed checksum validation. Sinon, elle retourne un message indiquant que la table peut ne plus être synchronisée et indique la différence entre le nombre de lignes attendu et le nombre réel.Otherwise, it returns a message that the table may be out of synchronization and reports the difference between the expected and the actual number of rows.

Si une validation du nombre de lignes et le nombre de lignes attendu est égal le numéro de la table, sp_table_validation renvoie un message indiquant le succès la validation du nombre de lignes.If performing a rowcount validation and the expected number of rows equals the number in the table, sp_table_validation returns a message that the table passed rowcount validation. Sinon, elle retourne un message indiquant que la table peut ne plus être synchronisée et indique la différence entre le nombre de lignes attendu et le nombre réel.Otherwise, it returns a message that the table may be out of synchronization and reports the difference between the expected and the actual number of rows.

NotesRemarks

sp_table_validation est utilisée dans tous les types de réplication.sp_table_validation is used in all types of replication. sp_table_validation n’est pas pris en charge pour les serveurs de publication Oracle.sp_table_validation is not supported for Oracle Publishers.

La somme de contrôle calcule une vérification de redondance cyclique de 32 bits (CRC) sur l'image de la ligne entière de la page.Checksum computes a 32-bit cyclic redundancy check (CRC) on the entire row image on the page. La somme de contrôle ne vérifie pas les colonnes de manière sélective et ne peut pas s'exécuter sur une vue ou une partition verticale de la table.It does not selectively check columns and cannot operate on a view or vertical partition of the table. En outre, la somme de contrôle saute les contenus des texte et image colonnes (par conception).Also, the checksum skips the contents of text and image columns (by design).

Lors d'une somme de contrôle, la structure de la table doit être identique sur les deux serveurs ; les tables doivent posséder les mêmes colonnes, dans le même ordre, les mêmes types et longueurs de données et les mêmes conditions NULL/NOT NULL.When doing a checksum, the structure of the table must be identical between the two servers; that is, the tables must have the same columns existing in the same order, same data types and lengths, and same NULL/NOT NULL conditions. Par exemple, si le serveur de publication a exécuté une instruction CREATE TABLE, puis une instruction ALTER TABLE pour ajouter des colonnes, mais que le script appliqué au niveau de l'Abonné est une simple CREATE TABLE, la structure n'est PAS la même.For example, if the Publisher did a CREATE TABLE, then an ALTER TABLE to add columns, but the script applied at the Subscriber is a simple CREATE table, the structure is NOT the same. Si vous n’êtes pas certain que la structure des deux tables est identique, examinez syscolumns et confirmez que le décalage de chaque table est le même.If you are not certain that the structure of the two tables is identical, look at syscolumns and confirm that the offset in each table is the same.

Valeurs à virgule flottante sont susceptibles de générer des différences de somme de contrôle si en mode caractère bcp a été utilisé, ce qui est le cas si la publication a non - SQL ServerSQL Server abonnés.Floating point values are likely to generate checksum differences if character-mode bcp was used, which is the case if the publication has non- SQL ServerSQL Server subscribers. Cela est dû à des erreurs mineures et inévitables de précision lors de la conversion vers le mode caractère et à partir de ce mode.These are due to minor and unavoidable differences in precision when doing conversion to and from character mode.

AutorisationsPermissions

Pour exécuter sp_table_validation, vous devez disposer des autorisations SELECT sur la table en cours de validation.To execute sp_table_validation, you must have SELECT permissions on the table being validated.

Voir aussiSee Also

CHECKSUM (Transact-SQL) CHECKSUM (Transact-SQL)
@@ROWCOUNT (Transact-SQL) @@ROWCOUNT (Transact-SQL)
sp_article_validation (Transact-SQL) sp_article_validation (Transact-SQL)
sp_publication_validation (Transact-SQL) sp_publication_validation (Transact-SQL)
Procédures stockées système (Transact-SQL)System Stored Procedures (Transact-SQL)