DROP TABLE (Transact-SQL)
Actualizado: 12 de diciembre de 2006
Quita una o varias definiciones de tabla y todos los datos, índices, desencadenadores, restricciones y especificaciones de permisos de esas tablas. Las vistas o procedimientos almacenados que hagan referencia a la tabla quitada se deben quitar explícitamente con DROP VIEW o DROP PROCEDURE.
Sintaxis
DROP TABLE [ database_name . [ schema_name ] . | schema_name . ]
table_name [ ,...n ] [ ; ]
Argumentos
- database_name
Es el nombre de la base de datos en la que se creó la tabla.
- schema_name
Es el nombre del esquema al que pertenece la tabla.
- table_name
Es el nombre de la tabla que se va a quitar.
Notas
No se puede utilizar DROP TABLE para quitar una tabla a la que haga referencia una restricción FOREIGN KEY. Primero se debe quitar la restricción FOREIGN KEY o la tabla de referencia. Si la tabla de referencia y la tabla que tiene la clave principal se van a quitar en la misma instrucción DROP TABLE, la tabla de referencia debe aparecer primero.
Se pueden quitar varias tablas de cualquier base de datos. Si la tabla que se va a quitar hace referencia a la clave principal de otra tabla que también se va a quitar, la tabla de referencia con la clave externa debe aparecer antes que la tabla que tiene la clave principal a la que se hace referencia.
Cuando se quita la tabla, las reglas o valores predeterminados de la tabla pierden sus enlaces y se quitan automáticamente las restricciones o desencadenadores asociados con la tabla. Si vuelve a crear una tabla, debe volver a enlazar las reglas y valores predeterminados apropiados, volver a crear los desencadenadores y agregar todas las restricciones necesarias.
Si elimina todas las filas de una tabla con DELETE tablename o utiliza la instrucción TRUNCATE TABLE, la tabla existe hasta que se quita.
Los índices y las tablas grandes que utilizan más de 128 extensiones se quitan en dos fases independientes: lógica y física. En la fase lógica, las unidades de asignación existentes que utiliza la tabla se marcan para la cancelación de asignación y se bloquean hasta que se confirme la transacción. En la fase física, las páginas IAM marcadas para cancelación de asignación se quitan físicamente por lotes. Para obtener más información, vea Quitar y volver a generar objetos grandes.
Permisos
Es necesario el permiso ALTER en el esquema al que pertenece la tabla, el permiso CONTROL en la tabla o la pertenencia a la función fija de base de datos db_ddladmin.
Ejemplos
A. Quitar una tabla de la base de datos actual
En el siguiente ejemplo se quita la tabla ProductVendor1
, y sus datos e índices de la base de datos actual.
DROP TABLE ProductVendor1 ;
B. Quitar una tabla de otra base de datos
En el siguiente ejemplo se quita la tabla SalesPerson2
de la base de datos AdventureWorks
. El ejemplo se puede ejecutar desde cualquier base de datos de la instancia de servidor.
DROP TABLE AdventureWorks.dbo.SalesPerson2 ;
C. Quitar una tabla temporal
En el siguiente ejemplo se crea una tabla temporal, se comprueba si existe, se quita y se comprueba de nuevo si existe.
USE AdventureWorks;
GO
CREATE TABLE #temptable (col1 int);
GO
INSERT INTO #temptable
VALUES (10);
GO
SELECT * FROM #temptable;
GO
IF OBJECT_ID(N'tempdb..#temptable', N'U') IS NOT NULL
DROP TABLE #temptable;
GO
--Test the drop.
SELECT * FROM #temptable;
Vea también
Referencia
ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
DELETE (Transact-SQL)
sp_depends (Transact-SQL)
sp_help (Transact-SQL)
sp_spaceused (Transact-SQL)
TRUNCATE TABLE (Transact-SQL)
DROP VIEW (Transact-SQL)
DROP PROCEDURE (Transact-SQL)
EVENTDATA (Transact-SQL)
Ayuda e información
Obtener ayuda sobre SQL Server 2005
Historial de cambios
Versión | Historial |
---|---|
12 de diciembre de 2006 |
|