Buscar..


Introducción

La palabra clave Drop se puede usar con varios objetos SQL, este tema proporciona ejemplos rápidos de diferentes usos con objetos de base de datos.

Observaciones

Enlaces a MSDN.

Caer mesas

El comando DROP TABLE elimina las definiciones de tabla y todos los datos, índices, activadores, restricciones y permisos relacionados.

Antes de eliminar una tabla, debe verificar si hay algún objeto (vistas, procedimientos almacenados, otras tablas) que haga referencia a la tabla.

No puede eliminar una tabla a la que hace referencia otra tabla mediante FOREIGN KEY. Primero debes soltar la LLAVE EXTERNA que hace referencia a ella.

Puede eliminar una tabla a la que hace referencia una vista o un procedimiento almacenado, pero después de eliminar la tabla, la vista o el procedimiento almacenado ya no se pueden utilizar.

La sintaxis

DROP TABLE [ IF EXISTS ] [ database_name . [ schema_name ] . | schema_name . ]
table_name [ ,...n ] [ ; ]
  • IF EXISTS - Soltar la tabla solo si existe
  • database_name : especifique el nombre de la base de datos donde se encuentra la tabla
  • schema_name : especifique el nombre del esquema en el que se encuentra la tabla
  • table_name : especifique el nombre de la tabla que se va a quitar

Ejemplos

Elimine la tabla con el nombre TABLE_1 de la base de datos actual y el esquema predeterminado dbo

DROP TABLE Table_1;

Elimine la tabla con TABLE_1 de la base de datos HR y el esquema predeterminado dbo

DROP TABLE HR.Table_1;

Elimine la tabla con TABLE_1 de la base de datos HR y el esquema externo

DROP TABLE HR.external.TABLE_1;

Eliminar bases de datos

El comando DROP DATABASE elimina un catálogo de base de datos, independientemente de su estado (fuera de línea, solo lectura, sospechoso, etc.) de la instancia actual de SQL Server.

No se puede descartar una base de datos si hay instantáneas de la base de datos asociadas a ella, ya que las instantáneas de la base de datos se deben descartar primero.

Una caída de la base de datos elimina todos los archivos de disco físico (a menos que esté fuera de línea) utilizados por la base de datos a menos que use el Procedimiento almacenado 'sp_detach_db'.

Una caída de la instantánea de la base de datos elimina la instantánea de la instancia de SQL Server y elimina los archivos físicos que también utiliza.

Una base de datos eliminada solo se puede volver a crear restaurando una copia de seguridad (tampoco desde una instantánea de la base de datos).

La sintaxis

DROP DATABASE [ IF EXISTS ] { database_name | database_snapshot_name } [ ,...n ] [;]  
  • IF EXISTS - Soltar la tabla solo si existe
  • database_name : especifica el nombre de la base de datos que se eliminará
  • database_snapshot_name : especifica la instantánea de la base de datos que se eliminará

Ejemplos

Eliminar una sola base de datos;

DROP DATABASE Database1;

Eliminar múltiples bases de datos

DROP DATABASE Database1, Database2;

Eliminar una instantánea

DROP DATABASE Database1_snapshot17;

Eliminar si existe la base de datos

DROP DATABASE IF EXISTS Database1;

Soltar tablas temporales

En el servidor SQL tenemos 2 tipos de tablas temporales:

  1. ##GlobalTempTable es un tipo de tabla temporal que se esconde entre las sesiones de todos los usuarios.
  2. #LocalTempTable temporal #LocalTempTable : es un tipo de tabla temporal que solo existe en el ámbito actual (solo en el proceso real: puede obtener una identificación de su proceso actual mediante SELECT @@SPID )

El proceso de eliminación de tablas temporales es el mismo que para la tabla normal:

DROP TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name   

ANTES de SQL Server 2016:

IF(OBJECT_ID('tempdb..#TempTable') is not null)
    DROP TABLE #TempTable;

SQL Server 2016:

DROP TABLE IF EXISTS #TempTable


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow