martes, 17 de octubre de 2017

SQL Server DBCC CHECKCONSTRAINTS

Comando DBCC CHECKCONSTRAINTS


Se ha indicado, cuando hablamos de los Comandos DBCC de validación, que este comando comprueba la integridad de una restricción especificada o de todas las restricciones de una tabla determinada en la base de datos actual.
Esto significa que es posible validar que los valores que se encuentran en una columna cumplen con las restricciones establecidas, principalmente comprueba la integridad de las restricciones indicadas en FOREIGN KEY y CHECK, pero no comprueba la integridad de las estructuras de datos del disco en una tabla.

Este comando tiene como sintaxis básica la siguiente:

USE database_name;
GO

DBCC CHECKCONSTRAINTS;

Este comando lleva a cabo la validación de todas las tablas que se encuentran en la base de datos actual, hay que recordar que la base de datos actual, por omisión, cuando accedemos a Microsoft SQL Server, ya sea a través de SQL Server Management Studio  o de SQLCMD, es master, por lo que en caso de que se requiera una base de datos en específico debe indicarse, a través del comando USE.
Es importante indicar, que si bien los comandos DBCC registran actividad en el Log de Microsoft SQL Server, este  comando no genera una entrada ya que no afecta el funcionamiento de la base de datos.

La sintaxis que se usa más a menudo es:
USE database_name;
GO

DBCC CHECKCONSTRAINTS (table_name);

O bien
USE database_name;
GO
DBCC CHECKCONSTRAINTS (constraint_name);

Es necesario indicar que se puede especificar un nombre de tabla, para que se lleve a cabo la validación de las restricciones de esa tabla, o bien indicar el nombre de una restricción en particular, la cual es específica para la tabla a la cual pertenece. 

Existen algunos argumentos opcionales  que pueden ser utilizadas con el comando, estos son:

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 solo la restricción habilitada.
ALL_ERRORMSGS
Devuelve todas las filas que infringen las restricciones de la tabla comprobada.
NO_INFOMSGS
Suprime todos los mensajes de información.

Ejemplos de DBCC CHECKCONSTRAINTS


Mostraré algunos ejemplos de uso de este comando:

USE database_name;
GO

DBCC CHECKCONSTRAINTS WITH ALL_CONSTRAINTS;

Este ejemplo ejecutará la comprobación de la integridad de todas las restricciones habilitadas y deshabilitadas en todas las tablas de la base de datos actual.

USE database_name;
GO

DBCC CHECKCONSTRAINTS (Table1);

El ejemplo comprueba la integridad de la restricción de la tabla Table1 de la base de datos actual.

USE database_name;
GO

DBCC CHECKCONSTRAINTS ([Table1.Table1_CheckDate]);

El ejemplo comprueba la integridad de la restricción denominada Table1_CheckDate de la tabla Table1.

Comentarios

Se ha observado que este comando generalmente devuelve un mensaje corto indicando que se ha efectuado la comprobación, sin embargo, es posible que al encontrar alguna inconsistencia en la comprobación, se presente una tabla que contiene el nombre de la tabla, el nombre de la restricción y las asignaciones de valor de las columnas que violan la restricción indicada.


No hay comentarios.:

Publicar un comentario