Compartilhar via


DROP DATABASE (Transact-SQL)

Remove um ou mais bancos de dados de usuário ou instantâneos do banco de dados de uma instância do SQL Server.

Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual).

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

-- SQL Server Syntax
DROP DATABASE { database_name | database_snapshot_name } [ ,...n ] [;]

-- Windows Azure SQL Database Syntax 
DROP DATABASE database_name [;]

Argumentos

  • database_name
    Especifica o nome do banco de dados a ser removido. Para exibir uma lista de bancos de dados, use a exibição de catálogo sys.databases.

  • database_snapshot_name

    Aplica-se a: SQL Server 2008 a SQL Server 2014.

    Especifica o nome de um instantâneo do banco de dados a ser removido.

Comentários gerais

Um banco de dados pode ser cancelado, independentemente de seu estado: offline, somente leitura, suspeito, etc. Para exibir o estado atual de um banco de dados, use a exibição de catálogo sys.databases.

Um banco de dados cancelado poderá ser recriado somente por meio da restauração de um backup. Não é possível efetuar backup de instantâneos do banco de dados, portanto, eles não podem ser restaurados.

Quando um banco de dados é descartado, o banco de dados mestre deve ser submetido a backup.

O descarte de um banco de dados exclui o banco de dados de uma instância do SQL Server e exclui os arquivos de disco físicos usados pelo banco de dados. Se o banco de dados ou qualquer um de seus arquivos estiverem offline quando forem cancelados, os arquivos em disco não serão excluídos. Esses arquivos podem ser excluídos manualmente usando o Windows Explorer. Para remover um banco de dados do servidor atual sem excluir os arquivos do sistema de arquivos, use sp_detach_db.

SQL Server

O descarte de um instantâneo de banco de dados o exclui de uma instância do SQL Server e exclui os arquivos físicos esparsos do Sistema de Arquivos NTFS utilizados pelo instantâneo. Para obter informações sobre o uso de arquivos esparsos por instantâneos do banco de dados, consulte Instantâneos de banco de dados (SQL Server). O cancelamento de um instantâneo do banco de dados limpa o cache de plano para a instância do SQL Server. A limpeza do cache de planos provoca uma recompilação de todos os planos de execução subsequentes e uma diminuição súbita temporária no desempenho de consultas. Para cada armazenamento em cache limpo no cache de planos, o log de erros SQL Server contém a mensagem informativa a seguir: "O SQL Server encontrou %d ocorrência(s) de liberação de armazenamento em cache para o cache '%s' (parte do cache de planos) devido à manutenção do banco de dados ou operações de reconfiguração." Essa mensagem é registrada a cada cinco minutos, contanto que o cache seja liberado dentro desse intervalo de tempo.

Interoperabilidade

SQL Server

Para cancelar um banco de dados publicado para replicação transacional ou publicado ou inscrito para replicação de mesclagem, você deve primeiro remover a replicação do banco de dados. Se um banco de dados estiver danificado ou não for possível remover a replicação primeiro ou ambos, na maioria dos casos você ainda pode cancelar o banco de dados usando ALTER DATABASE para definir o banco de dados offline e depois cancelá-lo.

Se o banco de dados estiver envolvido em envio de logs, remova o envio do log antes de cancelá-lo. Para obter mais informações, consulte Sobre o envio de logs (SQL Server).

Banco de dados SQL do Windows Azure

Nenhum.

Limitações e restrições

Os bancos de dados do sistema não podem ser descartados.

Uma instrução DROP DATABASE deve ser executada no modo de confirmação automática e não é permitida uma transação explícita ou implícita. O modo de confirmação automática é o modo padrão de gerenciamento de transações.

Você não pode cancelar um banco de dados que estiver sendo utilizado. Isso significa abrir para leitura ou gravação por qualquer usuário. Para remover usuários do banco de dados, use ALTER DATABASE para definir o banco de dados como SINGLE_USER.

SQL Server

Qualquer instantâneo de banco de dados em um banco de dados deve ser cancelado antes que o banco de dados seja cancelado.

Banco de dados SQL do Windows Azure

Você deve estar conectado ao banco de dados mestre para descartar um banco de dados.

A instrução DROP DATABASE deve ser a única instrução em um lote de SQL, e você poderá descartar apenas um banco de dados de cada vez.

Permissões

SQL Server

Requer a permissão CONTROL no banco de dados, ou a permissão ALTER ANY DATABASE, ou associação na função de banco de dados fixa db_owner.

Banco de dados SQL do Windows Azure

Somente o logon principal do nível de servidor (criado pelo processo de provisionamento) ou os membros da função de banco de dados dbmanager podem descartar um banco de dados.

Exemplos

A.Removendo um único banco de dados

O exemplo a seguir remove o nome do banco de dados Sales:

DROP DATABASE Sales;

B.Removendo vários bancos de dados

Aplica-se a: SQL Server 2008 a SQL Server 2014.

O exemplo a seguir remove cada um dos bancos de dados listados.

DROP DATABASE Sales, NewSales;

C.Removendo um instantâneo de banco de dados

Aplica-se a: SQL Server 2008 a SQL Server 2014.

O exemplo a seguir remove um instantâneo do banco de dados denominado sales_snapshot0600, sem afetar o banco de dados de origem.

DROP DATABASE sales_snapshot0600;

Consulte também

Referência

ALTER DATABASE (Transact-SQL)

CREATE DATABASE (SQL Server Transact-SQL)

EVENTDATA (Transact-SQL)

sys.databases (Transact-SQL)