Buscar las claves ajenas de una tabla

Descripción: 

En ocasiones puede darse el problema de que SQL Server no nos permita eliminar una tabla porque tiene claves ajenas (foreign keys) que provocarían una inconsistencia de los datos.

Resolución: 

Ejecutando el comando detallado a continuación, obtendremos un listado de todos los comandos que nos permitirán eliminar las claves ajenas de una tabla en concreto:

SELECT 
  UPPER(OBJECT_SCHEMA_NAME(PARENT_OBJECT_ID)+'.'+OBJECT_NAME(PARENT_OBJECT_ID))
  ,'ALTER TABLE ' + OBJECT_SCHEMA_NAME(PARENT_OBJECT_ID) + '.[' + OBJECT_NAME(PARENT_OBJECT_ID) +     '] DROP CONSTRAINT ' + NAME
FROM sys.foreign_keys
WHERE 
  UPPER(OBJECT_SCHEMA_NAME(PARENT_OBJECT_ID)+'.'+OBJECT_NAME(PARENT_OBJECT_ID)) = UPPER('<tabla_a_buscar>')

Donde:

  • <tabla_a_buscar> es la cadena formada por el esquema seguido de un punto y el nombre de la tabla a consultar. Si la tabla es usuarios, perteneciente al esquema dbo, entonces <tabla_a_buscar> deberá tener el valor dbo.usuarios
Tecnología: