Herramientas

Borrar tablas con dependencias en SQL Server

Cuando necesitamos eliminar tablas en SQL Server puede ser que el sistema no nos lo permita si estas hacen referencia a una restricción FOREIGN KEY. Obligándolos primero a eliminar las restricciones antes de continuar. Algo que se puede conseguir de forma manual mediante la creación de un script, como automática gracias a la herramienta de SQL Server Management Studio. Veamos cómo se puede conseguir borrar tablas con dependencias en SQL Server usando ambos métodos.

Borrado manual de las dependencias

El borrado manual de las tablas con dependencias requiere seguir unos pasos. En primer lugar, es necesario saber cuales son las dependencias, algo que se puede conseguir con la siguiente consulta

SELECT * FROM sys.foreign_keys
WHERE referenced_object_id = object_id('TABLE_NAME')

En donde TABLE_NAME es el nombre de la tabla a borrar. Si el resultado de la consulta no está vacío existe una o más dependencias que se pueden borrar con la siguiente consulta.

SELECT 
  'ALTER TABLE [' +  OBJECT_SCHEMA_NAME(parent_object_id) + '].[' +
  OBJECT_NAME(parent_object_id) + '] DROP CONSTRAINT [' + name + ']'
FROM sys.foreign_keys
WHERE referenced_object_id = object_id('TABLE_NAME')

Una vez ejecutada esta consuela ya se puede borrar la tabla mediante el comando

DROP TABLE TABLE_NAME

Borrar tablas con dependencias con Management Studio

Si solamente hay que borrar una tabla el proceso anterior no es complicado, pero sí cuando hay que repetirlo con decenas de tablas. En estos casos se puede recurrir al generador de scripts de SQL Server Management Studio. Una herramienta a la que se puede acceder pulsando sobre el motor derecho de la base de datos y seleccionado Tasks -> Generate Scripts

Acceso a la herramienta de generación se scripts de SQL Server Management Studio

En el asistente que aparece seleccionamos las tablas de la base de datos que deseamos eliminar y pulsamos en Next.

Seleccionado las tablas a usar en el generación se scripts de SQL Server Management Studio

A continuación, seleccionamos la opción “Open in a new query Window” y pulsamos sobre el botón Advanced.

Especificando dónde se guardarán los scripts generados con el asistente.

En la ventana que aparece al pulsar sobre Advance buscamos la opción “Script DROP and CREATE” y seleccionamos la opción “Script DROP”.

Seleccionar la opción para la creación de un script de borrado

Al pulsar sobre OK se sale de esta ventana y se vuelve a la anterior donde se puede pulsar sobre Next. Apreciando una ventana con un resumen de los pasos que hemos dado, volviendo a pulsar sobre Next. En este punto se creará un script con los pasos necesarios para eliminar las tablas seleccionadas. Al pulsar sobre Finish nos aparecerá un script que podemos ejecutar para borrar todas las tablas seleccionadas.

Conclusiones

En este paso hemos visto dos métodos con los que es posible borrar tablas con dependencias en SQL Server. El proceso manual no es complicado, pero el proceso automático nos permite ir más rápido cuando el número de tablas es mayor.

Imagen de Do Exploit en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Por Qué las Contraseñas Largas son más Seguras que las Complejas

"Tu contraseña debe tener al menos 8 caracteres, una mayúscula, un número y un símbolo…

12 horas ago

Gini, KS y AUC: Cómo Medir la Calidad de un Modelo de Credit Scoring

Cuando un analista de riesgo presenta un nuevo scorecard ante el comité de dirección, la…

2 días ago

Curiosidad: De dónde vienen foo, bar y foobar

Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos…

1 semana ago

BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas

Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a…

1 semana ago

Errores habituales al trabajar con DataFrames grandes en Pandas (y cómo evitarlos)

Hay un momento muy concreto en la vida de casi todo análisis: el código que…

2 semanas ago

Champion vs Challenger: Cómo los Bancos Validan Modelos Nuevos antes de Ponerlos en Producción

Has construido un nuevo modelo de credit scoring. Las métricas de validación son mejores que…

2 semanas ago

This website uses cookies.