DROP DATABASE (Transact-SQL)

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

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

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

Sintaxe

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

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

-- Core Syntax (common to SQL Server and SQL Database) 
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
    Especifica o nome de um instantâneo do banco de dados a ser removido.

    Aplica-se a: Somente para o SQL Server.

Comentários gerais

Núcleo

Um banco de dados pode ser ignorado sem considerar seu estado: offline, somente leitura, suspeito e assim por diante. 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.

SQL Server

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.

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. Limpar o cache de plano causa uma recompilação de todos os planos de execução subsequentes e pode causar uma queda repentina e temporária no desempenho da consulta. Para cada armazenamento de cache limpo no cache do plano, o log de erros SQL Server contém a seguinte mensagem informativa: "SQL Server encontrou %d ocorrências de liberação de armazenamento no 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.

Banco de dados SQL do Windows Azure

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.

Um banco de dados pode ser ignorado sem considerar seu estado: offline, somente leitura, suspeito e assim por diante. Para exibir o estado atual de um banco de dados, use a exibição de catálogo sys.databases.

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

Núcleo

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. Cancelando um único banco de dados

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

Aplica-se a: SQL Server e Banco de dados SQL do Windows Azure

DROP DATABASE Sales;

B. Cancelando vários bancos de dados

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

Aplica-se a: SQL Server

DROP DATABASE Sales, NewSales;

C. Cancelando um instantâneo do banco de dados

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

Aplica-se a: SQL Server

DROP DATABASE sales_snapshot0600;

Consulte também

Referência

ALTER DATABASE (Transact-SQL)

CREATE DATABASE (Transact-SQL)

EVENTDATA (Transact-SQL)

sys.databases (Transact-SQL)