DBCC CHECKCONSTRAINTS (Transact-SQL)

Actualizado: 5 de diciembre de 2005

Comprueba la integridad de una restricción especificada o de todas las restricciones de una tabla determinada en la base de datos actual.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • table_name | table_id | constraint_name | constraint_id
    Es la tabla o la restricción que se va a comprobar. Si no se especifica table_name ni table_id, se comprueban todas las restricciones habilitadas en la tabla. Si se especifica constraint_name o constraint_id, sólo se comprueba esa restricción. Si no se especifica un identificador de tabla ni un identificador de restricción, se comprueban todas las restricciones habilitadas en todas las tablas de la base de datos actual.

    Un nombre de restricción identifica exclusivamente a la tabla a la que pertenece. Para obtener más información, vea Identificadores.

  • WITH
    Habilita opciones que se van a especificar
  • ALL_CONSTRAINTS
    Comprueba todas las restricciones habilitadas y deshabilitadas de la tabla, si se especifica el nombre de tabla o si se comprueban todas las tablas; de lo contrario, comprueba sólo la restricción habilitada. ALL_CONSTRAINTS no tiene ningún efecto cuando se especifica un nombre de restricción.
  • ALL_ERRORMSGS
    Devuelve todas las filas que infringen las restricciones de la tabla comprobada. El valor predeterminado es las 200 primeras filas.
  • NO_INFOMSGS
    Suprime todos los mensajes de información.

Conjuntos de resultados

DBCC CHECKCONSTRAINTS devuelve un conjunto de filas con las siguientes columnas.

Nombre de columna Tipo de datos Descripción

Table Name

varchar

Nombre de la tabla.

Constraint Name

varchar

Nombre de la restricción infringida.

Where

varchar

Asignaciones del valor de columna que identifican la fila o las filas que infringen la restricción.

El valor de esta columna se puede utilizar en una cláusula WHERE de una instrucción SELECT para consultar qué filas infringen la restricción.

Notas

DBCC CHECKCONSTRAINTS construye y ejecuta una consulta para todas las restricciones FOREIGN KEY y CHECK en una tabla.

Por ejemplo, una consulta de clave externa tiene el siguiente formato:

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

La consulta de datos se almacena en una tabla temporal. Tras la comprobación de todas las tablas o restricciones solicitadas, se devuelve el conjunto de resultados.

DBCC CHECKCONSTRAINTS comprueba la integridad de las restricciones FOREIGN KEY y CHECK, pero no la de las estructuras de datos del disco en una tabla. Estas comprobaciones de las estructuras de datos pueden realizarse con DBCC CHECKDB y DBCC CHECKTABLE.

Permisos

Debe pertenecer a la función fija de servidor sysadmin o a la función fija de base de datos db_owner.

Ejemplos

A. Comprobar una tabla

El ejemplo siguiente comprueba la integridad de la restricción de la tabla Table1 de la base de datos 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. Comprobar una restricción específica

El ejemplo siguiente comprueba la integridad de la restricción CK_ProductCostHistory_EndDate en el esquema Production.

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

C. Comprobar todas las restricciones habilitadas y deshabilitadas en todas las tablas

El ejemplo siguiente comprueba la integridad de todas las restricciones habilitadas y deshabilitadas en todas las tablas de la base de datos actual.

DBCC CHECKCONSTRAINTS WITH ALL_CONSTRAINTS;
GO

Vea también

Referencia

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

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

5 de diciembre de 2005

Contenido modificado:
  • Se cambió el diagrama de sintaxis para indicar que se puede especificar NO_INFOMSGS en la cláusula WITH sin { ALL_CONSTRAINTS | ALL_ERRORMSGS }.