DBCC CHECKCONSTRAINTS (Transact-SQL)

Mis à jour : 5 décembre 2005

Vérifie l'intégrité d'une contrainte spécifiée ou de toutes les contraintes sur une table spécifiée de la base de données en cours.

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

Syntaxe

DBCC CHECKCONSTRAINTS
[ 
        ( 
        table_name | table_id | constraint_name | constraint_id 
        )
]
    [ WITH 
        [ { ALL_CONSTRAINTS | ALL_ERRORMSGS } ]
    [ , ] [ NO_INFOMSGS ] 
    ]

Arguments

  • table_name | table_id | constraint_name | constraint_id
    Table ou contrainte à vérifier. Si vous ne spécifiez ni table_name ni table_id, toutes les contraintes activées sur la table sont vérifiées. Si vous spécifiez constraint_name ou constraint_id, seule cette contrainte est vérifiée. Si aucun identificateur de table ni aucun identificateur de contrainte n'est spécifié, toutes les contraintes activées sur toutes les tables de la base de données actuelle sont vérifiées.

    Un nom de contrainte identifie de manière unique la table à laquelle la contrainte appartient. Pour plus d'informations, consultez Identificateurs.

  • WITH
    Active les options à spécifier.
  • ALL_CONSTRAINTS
    Vérifie toutes les contraintes activées et désactivées de la table si le nom de la table est défini, ou bien si toutes les tables sont vérifiées. Si tel n'est pas le cas, vérifie seulement la contrainte activée. ALL_CONSTRAINTS n'a pas d'effet lorsqu'un nom de contrainte est spécifié.
  • ALL_ERRORMSGS
    Retourne toutes les lignes qui violent les contraintes de la table vérifiée. Cette instruction concerne par défaut les 200 premières lignes.
  • NO_INFOMSGS
    Supprime tous les messages d'information.

Jeux de résultats

DBCC CHECKCONSTRAINTS retourne un ensemble de lignes comportant les colonnes suivantes.

Nom de la colonne Type de données Description

Table Name (Nom de la table)

varchar

Nom de la table.

Constraint Name (Nom de la contrainte)

varchar

Nom de la contrainte violée.

Where (Où)

varchar

Affectations des valeurs de la colonne qui identifient la ou les lignes ne respectant pas la contrainte.

La valeur de cette colonne peut être utilisée dans la clause WHERE d'une instruction SELECT qui demande les lignes qui violent la contrainte.

Notes

DBCC CHECKCONSTRAINTS crée et exécute une requête pour toutes les contraintes FOREIGN KEY et les contraintes CHECK sur une table.

Par exemple, une requête de clé étrangère se présente comme suit :

SELECT <columns>
FROM <table_being_checked> LEFT JOIN <referenced_table>
    ON <table_being_checked.fkey1> = <referenced_table.pkey1> 
    AND <table_being_checked.fkey2> = <referenced_table.pkey2>
WHERE <table_being_checked.fkey1> IS NOT NULL 
    AND <referenced_table.pkey1> IS NULL
    AND <table_being_checked.fkey2> IS NOT NULL
    AND <referenced_table.pkey2> IS NULL

Les données de la requête sont stockées dans une table temporaire. Une fois que toutes les tables ou les contraintes demandées ont été vérifiées, le jeu de résultats est retourné.

DBCC CHECKCONSTRAINTS vérifie l'intégrité des contraintes FOREIGN KEY et CHECK, mais ne vérifie pas celle des structures de données sur disque d'une table. Ces vérifications de structures de données peuvent être effectuées à l'aide de DBCC CHECKDB et de DBCC CHECKTABLE.

Autorisations

Requiert l'appartenance au rôle serveur fixe sysadmin ou au rôle de base de données fixe db_owner.

Exemples

A. Vérification d'une table

L'exemple suivant vérifie l'intégrité des contraintes de la table Table1 de la base de données AdventureWorks.

USE AdventureWorks;
GO
CREATE TABLE Table1 (Col1 int, Col2 char (30));
GO
INSERT INTO Table1 VALUES (100, 'Hello');
GO
ALTER TABLE Table1 WITH NOCHECK ADD CONSTRAINT chkTab1 CHECK (Col1 > 100);
GO
DBCC CHECKCONSTRAINTS(Table1);
GO

B. Vérification d'une contrainte spécifique

L'exemple suivant vérifie l'intégrité de la contrainte CK_ProductCostHistory_EndDate dans le schéma Production.

USE AdventureWorks;
GO
DBCC CHECKCONSTRAINTS ("Production.CK_ProductCostHistory_EndDate");
GO

C. Vérification de toutes les contraintes activées et désactivées de toutes les tables

L'exemple suivant vérifie l'intégrité de toutes les contraintes activées et désactivées de toutes les tables de la base de données actuelle.

DBCC CHECKCONSTRAINTS WITH ALL_CONSTRAINTS;
GO

Voir aussi

Référence

DBCC CHECKDB (Transact-SQL)
DBCC CHECKTABLE (Transact-SQL)
DBCC (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

5 décembre 2005

Contenu modifié :
  • Le diagramme de la syntaxe a été modifié pour indiquer que NO_INFOMSGS peut être spécifié dans la clause WITH sans { ALL_CONSTRAINTS | ALL_ERRORMSGS }.