Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server Banco de Dados
SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics
Warehouse do PDW (Analytics Platform System)
no Microsoft Fabric
Remove uma ou mais definições de tabela e todos os dados, índices, gatilhos, restrições e especificações de permissão dessas tabelas. Qualquer exibição ou procedimento armazenado que faça referência à tabela descartada deverá ser descartado explicitamente utilizando DROP VIEW ou DROP PROCEDURE. Para relatar as dependências em uma tabela, use sys.dm_sql_referencing_entities.
Convenções de sintaxe de Transact-SQL
Sintaxe
-- Syntax for SQL Server, Azure SQL Database, Warehouse in Microsoft Fabric
DROP TABLE [ IF EXISTS ] { database_name.schema_name.table_name | schema_name.table_name | table_name } [ ,...n ]
[ ; ]
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse
DROP TABLE { database_name.schema_name.table_name | schema_name.table_name | table_name }
[;]
Argumentos
database_name
É o nome do banco de dados no qual a tabela foi criada.
Azure SQL Database suporta o formato database_name.schema_name.object_name de nome em três partes quando database_name é o banco de dados atual ou database_name é tempdb e object_name começa com # ou ##. O Azure SQL Database não suporta nomes de quatro partes.
SE EXISTIR
Aplica-se a: SQL Server (SQL Server 2016 (13.x) até a versão atual).
Remove condicionalmente a tabela somente se ela já existe.
schema_name
É o nome do esquema ao qual a tabela pertence.
table_name
É o nome da tabela a ser removida.
Comentários
DROP TABLE não pode ser usado para eliminar uma tabela que é referenciada por uma FOREIGN KEY restrição. A restrição de FOREIGN KEY referência ou a tabela de referência devem ser descartadas primeiro.
Múltiplas tabelas podem ser descartadas na mesma DROP TABLE instrução. Se tanto a tabela de referência em uma FOREIGN KEY restrição quanto a tabela com a chave primária ou única referenciada estiverem sendo descartadas na mesma DROP TABLE instrução, a tabela de referência deve ser listada primeiro.
Quando uma tabela for descartada, as regras ou os padrões da tabela perderão sua associação e quaisquer restrições ou gatilhos associados à tabela serão descartados automaticamente. Se você recriar uma tabela, deverá associar novamente as regras e padrões apropriados, recriar quaisquer gatilhos e adicionar todas as restrições necessárias.
Se você excluir todas as linhas de uma tabela usando a DELETE instrução ou usar a TRUNCATE TABLE instrução, a definição da tabela existe até ser eliminada usando DROP TABLE.
Se você dropar uma tabela que contém uma varbinary(max) coluna com o FILESTREAM atributo, qualquer dado armazenado no sistema de arquivos não é removido.
Quando uma tabela do razão é removida, os objetos dependentes (a tabela de histórico e a exibição do razão) também são removidos. Uma tabela de histórico ou uma visualização de livro maior não pode ser descartada diretamente. O sistema impõe uma semântica de deleção suave ao eliminar tabelas de registro e seus objetos dependentes – eles não são realmente descartados, mas sim marcados como dropados nas visualizações do catálogo do sistema e renomeados. Para obter mais informações, confira Considerações e limitações do razão.
Importante
DROP TABLE
CREATE TABLE e não deve ser executado na mesma tabela no mesmo lote. Caso contrário, poderá ocorrer um erro inesperado.
No banco de dados SQL Fabric, ao eliminar uma tabela ela é retirada tanto do banco de dados quanto do Fabric OneLake. Todos os dados espelhados da tabela descartada são removidos.
Realocação diferida
Quando uma tabela é descartada, e a tabela ou seus índices têm 128 extensões ou mais, o Mecanismo de Banco de Dados adia as reales alocações de páginas e seus bloqueios associados até que a transação seja comprometida. A tabela e os índices são descartados em duas fases separadas: lógica e física. Na fase lógica, as unidades de alocação existentes são marcadas para desalocação e travadas até que a transação seja confirmada. Na fase física, um processo em segundo plano remove as páginas marcadas para deslocação. Isso significa que o espaço liberado por DROP TABLE pode não estar disponível para novas alocações imediatamente.
Se a recuperação acelerada do banco de dados for habilitada, as fases lógicas e físicas separadas são usadas independentemente do número de extensões.
Permissões
Requer permissão ALTER sobre o esquema ao qual a tabela pertence, CONTROL permissão sobre a tabela ou pertencimento ao db_ddladmin papel fixo de banco de dados.
Se a instrução cair em uma tabela de livro-caixa, a ALTER LEDGER permissão é necessária.
Exemplos
a. Descartando uma tabela no banco de dados atual
O exemplo a seguir remove a tabela ProductVendor1 e seus dados e índices do banco de dados atual.
DROP TABLE ProductVendor1;
B. Descartando uma tabela em outro banco de dados
O exemplo a seguir descarta a tabela SalesPerson2 no banco de dados AdventureWorks2025. O exemplo pode ser executado a partir de qualquer banco de dados na instância do servidor.
DROP TABLE AdventureWorks2022.dbo.SalesPerson2 ;
C. Descartando uma tabela temporária
O exemplo a seguir cria uma tabela temporária, testa sua existência, a descarta e testa novamente sua existência tentando executar uma SELECT instrução, que falha. Este exemplo não usa a IF EXISTS sintaxe que está disponível a partir do SQL Server 2016 (13.x).
CREATE TABLE #temptable (col1 int);
INSERT INTO #temptable
VALUES (10);
SELECT col1 FROM #temptable;
IF OBJECT_ID(N'tempdb..#temptable', N'U') IS NOT NULL
DROP TABLE #temptable;
SELECT col1 FROM #temptable;
D. Descartando uma tabela usando IF EXISTS
Aplica-se a: SQL Server (SQL Server 2016 (13.x) até a versão atual).
O exemplo a seguir cria uma tabela chamada T1. Em seguida, a segunda instrução remove a tabela. A terceira instrução não realiza nenhuma ação porque a tabela já está descartada, porém não causa erro.
CREATE TABLE T1 (Col1 int);
DROP TABLE T1;
DROP TABLE IF EXISTS T1;
Conteúdo relacionado
- ALTERAR TABELA (Transact-SQL)
- CRIAR TABELA (Transact-SQL)
- DELETE (Transact-SQL)
- sp_help (Transact-SQL)
- sp_spaceused (Transact-SQL)
- TABELA TRUNCADA (Transact-SQL)
- VISUALIZAÇÃO DE QUEDA (Transact-SQL)
- PROCEDIMENTO DE QUEDA (Transact-SQL)
- DADOS DE EVENTOS (Transact-SQL)
- sys.sql_dependências_de_expressões (Transact-SQL)