Problema:
Quiere encontrar los nombres de las restricciones en una tabla en SQL Server.
Ejemplo:
Queremos mostrar los nombres de las restricciones en la tabla student .
Solución:
SELECT TABLE_NAME,
CONSTRAINT_TYPE,CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_NAME=’student’;
Aquí está el resultado:
| NOMBRE_TABLA | CONSTRAINT_TYPE | CONSTRAINT_NAME |
|---|---|---|
| estudiante | CLAVE PRINCIPAL | PK__estudiante__3213E83F357C7D1D |
| estudiante | ÚNICO | UQ__estudiante__24E2EDD2AC2A7D87 |
| estudiante | COMPROBAR | CK__estudiante__edad__4E88ABD4 |
| estudiante | LLAVE EXTRANJERA | FK__estudiante__país__4F7CD00D |
Discusión:
Utilice la vista table_constraints en el information_schema esquema. La columna table_name le da el nombre de la tabla en la que se define la restricción y la columna constraint_name contiene el nombre de la restricción. La columna constraint_type indica el tipo de restricción:PRIMARY KEY para el tipo de clave principal, FOREIGN KEY para el tipo de clave foránea, UNIQUE para los valores únicos y CHECK para la comprobación de restricciones.
Por ejemplo, la clave principal en el student la tabla tiene el nombre de restricción PK_student_3213E83F357C7D1D . El constraint_type columna le brinda información sobre el tipo de cada restricción; para la clave principal, es PRIMARY KEY . El table_name columna en esta vista indica qué tabla contiene esta restricción.
Sin embargo, si desea seleccionar DEFAULT restricción de una base de datos, use esta consulta a continuación.
SELECT c.name, c.definition FROM sys.default_constraints c JOIN sys.objects o ON o.object_id = c.parent_object_id WHERE o.name ='student';
Aquí está el resultado:
| nombre | definición |
|---|---|
| DF__student__name__4D94879B | ("desconocido") |
El nombre del DEFAULT la restricción se almacena en el nombre de la columna, pero el valor está en la columna definition . Unirse a las vistas sys.default_constraint s y sys.objects nos permite seleccionar solo los datos de una tabla dada (en nuestro ejemplo, la tabla student ) con el uso de la cláusula WHERE. El nombre de la restricción contiene el nombre de la tabla (student ) y el nombre de la columna (name ).