DROP DATABASE (Transact-SQL)

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

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

Sintaxe

DROP DATABASE { database_name | database_snapshot_name } [ ,...n ] 
[;]

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.

Comentários

Para usar DROP DATABASE, o contexto de banco de dados da conexão não pode ser igual ao banco de dados ou instantâneo do banco de dados a ser cancelado.

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. Para obter mais informações, consulte Transações de confirmação automática.

Cancelando um banco de dados

Bancos de dados do sistema não podem ser cancelados.

O cancelamento 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.

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.

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

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 Administração de envio de logs.

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 é cancelado, deve ser feito backup do banco de dados mestre.

Cancelando um instantâneo do banco de dados

O cancelamento de um instantâneo de banco de dados exclui o instantâneo do banco de dados 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 Como funcionam os instantâneos de banco de dados.

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 plano gera uma recompilação de todos os planos de execução subseqüentes e pode causar uma queda repentina e temporária no desempenho da consulta. Para cada armazenamento em cache limpo no cache de plano, o log de erros do SQL Server contém a seguinte mensagem informativa: "SQL Server encontrou %d ocorrência(s) de liberação de armazenamento em cache '% s' (parte do cache de plano) devido a alguma manutenção de banco de dados ou a operações de reconfiguração". Essa mensagem é registrada a cada cinco minutos, contanto que o cache seja liberado dentro desse intervalo de tempo.

Cancelando um banco de dados usado em replicação

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. Para obter mais informações sobre como remover a replicação de um banco de dados, consulte Removendo a replicação. 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.

Permissões

Para executar DROP DATABASE, a um mínimo, um usuário deve ter permissão CONTROL no banco de dados.

Exemplos

A. Cancelando um único banco de dados

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

DROP DATABASE Sales;

B. Cancelando vários bancos de dados

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

DROP DATABASE Sales, NewSales;

C. Cancelando um instantâneo do banco de dados

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

DROP DATABASE sales_snapshot0600;