SQL

Cómo eliminar tablas en SQL Server con DROP TABLE

Estrada Web Group
jiestrada
Cómo eliminar tablas en SQL Server con DROP TABLE

Resumen: en este tutorial, aprenderás a usar la instrucción DROP TABLE de SQL Server para eliminar una o más tablas de una base de datos.

A veces, es necesario eliminar una tabla que ya no está en uso. Para hacer esto, usa la siguiente instrucción DROP TABLE:

DROP TABLE [IF EXISTS]  [database_name.][schema_name.]table_name;

En la sintaxis anterior encontramos lo siguiente:

  • Primero, especifica el nombre de la tabla que se eliminará.
  • En segundo lugar, especifica el nombre de la base de datos en la que se creó la tabla y el nombre del esquema al que pertenece la tabla. El nombre de la base de datos es opcional. Si lo omites, la instrucción DROP TABLE eliminará la tabla en la base de datos actualmente conectada.
  • En tercer lugar, utiliza la cláusula IF EXISTS para eliminar la tabla solo si existe. La cláusula IF EXISTS se admite desde SQL Server 2016 13.x. Si eliminas una tabla que no existe, obtendrás un error. La cláusula IF EXISTS elimina condicionalmente la tabla si ya existe.

Cuando SQL Server elimina una tabla, también elimina todos los datos, triggers, restricciones y permisos de esa tabla. Además, SQL Server no elimina explícitamente las vistas y los procedimientos almacenados que hacen referencia a la tabla eliminada. Por lo tanto, para descartar explícitamente estos objetos dependientes, debes utilizar la instrucción DROP VIEW y DROP PROCEDURE.

SQL Server permite eliminar varias tablas a la vez usando una sola instrucción DROP TABLE de la siguiente manera:

DROP TABLE [database_name.][schema_name.]table_name_1,
[schema_name.]table_name_2, …
[schema_name.]table_name_n;

Ejemplos de DROP TABLE de SQL Server

Veamos algunos ejemplos del uso de la instrucción DROP TABLE de SQL Server.

A) Eliminar una tabla que no existe

La siguiente declaración elimina una tabla denominada revenues en el esquema de sales de la base de datos de ejemplo:

DROP TABLE IF EXISTS sales.revenues;

En este ejemplo, la tabla revenues no existe. Debido a que se utiliza la cláusula IF EXISTS, la instrucción se ejecuta correctamente sin eliminar ninguna tabla.

B) Ejemplo de eliminar una sola tabla

La siguiente declaración crea una nueva tabla con CREATE TABLE denominada delivery en el esquema de sales:

CREATE TABLE sales.delivery (
    delivery_id INT PRIMARY KEY,
    delivery_note VARCHAR (255) NOT NULL,
    delivery_date DATE NOT NULL
);

Para eliminar la tabla de delivery, utilice la siguiente declaración:

DROP TABLE sales.delivery;

C) Eliminar una tabla con un ejemplo de restricción de clave externa

La siguiente declaración crea dos nuevas tablas denominadas supplier_groups y suppliers en el esquema de procurement:

CREATE SCHEMA procurement;
GO

CREATE TABLE procurement.supplier_groups (
    group_id INT IDENTITY PRIMARY KEY,
    group_name VARCHAR (50) NOT NULL
);

CREATE TABLE procurement.suppliers (
    supplier_id INT IDENTITY PRIMARY KEY,
    supplier_name VARCHAR (50) NOT NULL,
    group_id INT NOT NULL,
    FOREIGN KEY (group_id) REFERENCES procurement.supplier_groups (group_id)
);

Intentemos eliminar la tabla Supplier_groups:

DROP TABLE procurement.supplier_groups;

SQL Server regresa el siguiente error:

No se puede quitar el objeto 'procurement.supplier_groups'. Hay una referencia a él en una restricción FOREIGN KEY.

SQL Server no permite eliminar una tabla a la que hace referencia una restricción externa. Para eliminar esta tabla, primero debes eliminar la restricción de clave externa o la tabla de referencia. En este caso, primero debes eliminar la restricción de clave externa en la tabla de suppliers o en la tabla de suppliers antes de eliminar la tabla supplier_groups.

DROP TABLE procurement.supplier_groups;
DROP TABLE procurement.suppliers;

Si usas una sola instrucción DROP TABLE para eliminar ambas tablas, la tabla de referencia debe aparecer primero como se muestra en la consulta a continuación:

DROP TABLE procurement.suppliers, procurement.supplier_groups;

En este tutorial, has aprendido a usar la instrucción DROP TABLE de SQL Server para eliminar una o más tablas de una base de datos.

Compartir artículo:

Más artículos geniales

Cómo limitar el número de resultados en una consulta SQL con la instrucción SELECT TOP

Cómo limitar el número de resultados en una consulta SQL con la instrucción SELECT TOP

En este tutorial, aprenderá a usar la instrucción SELECT TOP SQL Server para limitar las filas o registros devueltas por una consulta.

Ver artículo completo
¿Qué es SQL Like y para qué sirve?

¿Qué es SQL Like y para qué sirve?

En este tutorial, aprenderás a usar el operador LIKE de SQL Server para verificar si una cadena de caracteres coincide con un patrón especificado.

Ver artículo completo
¿Cómo obtener una subcadena de una cadena de caracteres en SQL Server con la función Substring?

¿Cómo obtener una subcadena de una cadena de caracteres en SQL Server con la función Substring?

En este tutorial, aprenderá a usar la función SUBSTRING() de SQL Server para extraer una subcadena de una cadena.

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla ;