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 ServerAzure
SQL DatabaseAzure
SQL Managed InstanceAzure
Synapse AnalyticsWarehouse
in 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 view ou procedimento armazenado que faça referência à tabela descartada deve ser explicitamente descartado usando 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
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.
Banco de Dados SQL do Azure 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 Banco de Dados SQL do Azure 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
- ALTER TABLE (Transact-SQL)
- CREATE TABLE (Transact-SQL)
- DELETE (Transact-SQL)
- sys.sp_help (Transact-SQL)
- sys.sp_spaceused (Transact-SQL)
- TRUNCATE TABLE (Transact-SQL)
- DROP VIEW (Transact-SQL)
- DROP PROCEDURE (Transact-SQL)
- DADOS DE EVENTOS (Transact-SQL)
- sys.sql_dependências_de_expressões (Transact-SQL)