Published on

July 8, 2019

Comprendiendo la instrucción SQL DROP TABLE

En SQL Server, la instrucción DROP TABLE se utiliza para eliminar una o más tablas de una base de datos. Esta instrucción elimina completamente la estructura de la tabla y todos los índices, estadísticas, permisos, disparadores y restricciones asociados. Sin embargo, no elimina los procedimientos almacenados y las vistas que hacen referencia a la tabla, por lo que estos deben eliminarse explícitamente.

Antes de adentrarnos en la sintaxis y ejemplos de la instrucción DROP TABLE, primero entendamos por qué podríamos querer usarla. Un escenario común es cuando necesitamos realizar cambios masivos en una tabla. Muchos administradores de bases de datos realizan una copia de seguridad a nivel de tabla antes de realizar cualquier cambio, lo que implica crear otra tabla de respaldo con un nombre diferente. Sin embargo, estas tablas de respaldo pueden acumularse con el tiempo y ocupar espacio en disco innecesario. Además, si se realiza el mantenimiento de índices para todos los índices, puede agregar una sobrecarga adicional al sistema. En estos casos, realizar una limpieza regular eliminando tablas innecesarias puede ser beneficioso.

La sintaxis para la instrucción SQL DROP TABLE es la siguiente:

DROP TABLE [nombre_base_de_datos].[nombre_esquema].[nombre_tabla]

Los parámetros utilizados en esta sintaxis son:

  • nombre_base_de_datos: Especifica el nombre de la base de datos en la que existe la tabla. Este parámetro se puede omitir si el comando de eliminación se ejecuta en el contexto de la base de datos actual.
  • nombre_esquema: Especifica el nombre del esquema al que pertenece el objeto. Si el objeto pertenece al esquema predeterminado (dbo), este parámetro se puede omitir ya que SQL Server utiliza automáticamente el esquema dbo. Sin embargo, si el objeto pertenece a un esquema distinto al predeterminado, se debe especificar el nombre del esquema.
  • nombre_tabla: Especifica el nombre de la tabla que queremos eliminar.

Ahora, veamos algunos ejemplos para comprender mejor cómo funciona la instrucción DROP TABLE.

Ejemplo 1: Eliminar una sola tabla

Para eliminar una sola tabla, puedes ejecutar la siguiente consulta:

DROP TABLE AdventureWorks2017.HumanResources.Employee13072019;

Si la tabla pertenece al esquema predeterminado (dbo), también puedes usar la siguiente consulta:

USE AdventureWorks2017;
DROP TABLE HumanResources.Employee13072019;

Ejemplo 2: Eliminar múltiples tablas

Puedes eliminar múltiples tablas juntas utilizando una sola instrucción DROP TABLE. Por ejemplo, creemos tres tablas y luego las eliminaremos:

CREATE TABLE Sam (id INT);
CREATE TABLE Amp (id INT);
CREATE TABLE Rmp (id INT);

DROP TABLE Sam, Amp, Rmp;

Ejemplo 3: Eliminar una tabla con una restricción de clave externa

Si una tabla tiene una restricción de clave externa, no puedes eliminarla directamente. Debes eliminar la relación de clave externa o eliminar primero la tabla secundaria. Entendamos esto con un ejemplo:

CREATE TABLE Department (
  Dept_id INT IDENTITY PRIMARY KEY,
  Dept_name VARCHAR(50) NOT NULL
);

CREATE TABLE Employee1 (
  EmpID INT IDENTITY PRIMARY KEY,
  EmpName VARCHAR(50) NOT NULL,
  Dept_id INT NOT NULL,
  FOREIGN KEY (Dept_id) REFERENCES department (dept_id)
);

DROP TABLE Employee1;
DROP TABLE Department;

Ejemplo 4: Eliminar una tabla temporal

También puedes eliminar una tabla temporal de manera similar a una tabla regular. Por ejemplo:

CREATE TABLE #temp1 (col1 INT);

INSERT INTO #temp1 VALUES (100);

DROP TABLE #temp1;

Ejemplo 5: Eliminar una tabla con IF EXISTS

Antes de SQL Server 2016, los desarrolladores utilizaban la instrucción IF EXISTS para verificar la existencia de una tabla antes de eliminarla. Esto se hacía para evitar errores al intentar eliminar una tabla que no existe. A partir de SQL Server 2016, puedes utilizar la nueva sintaxis de la instrucción DROP TABLE para lograr el mismo resultado de una manera más corta y sencilla. Aquí tienes un ejemplo:

DROP TABLE IF EXISTS Department;

Esta instrucción eliminará la tabla solo si ya existe, eliminando la necesidad de comprobaciones adicionales.

Es importante tener en cuenta que al eliminar una tabla que se utiliza en procedimientos almacenados o vistas, SQL Server no muestra ningún mensaje de error. Para asegurarte de que los procedimientos y vistas puedan funcionar correctamente después de eliminar la tabla, debes verificar las dependencias y resolverlas en consecuencia.

Conclusión

En este artículo, hemos explorado la instrucción SQL DROP TABLE y su uso para eliminar tablas de una base de datos SQL. Hemos visto cómo eliminar tablas individuales y múltiples, manejar restricciones de clave externa, eliminar tablas temporales y utilizar la sintaxis IF EXISTS para evitar errores. Es importante tener precaución al eliminar tablas, especialmente en una base de datos de producción, y considerar las dependencias y el impacto en otros objetos.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.