Desanexar um banco de dados

Aplica-se a:SQL Server

Este artigo descreve como desanexar um arquivo de log ou de dados no SQL Server usando o SQL Server Management Studio ou o Transact-SQL. Os arquivos desanexados não são excluídos e permanecem no sistema de arquivos. Os arquivos podem ser reanexados usando a opção CREATE DATABASE ... FOR ATTACH ou FOR ATTACH_REBUILD_LOG. Os arquivos também podem ser movidos para outro servidor e anexados a uma instância com a mesma versão ou mais recente.

Limitações

Para obter uma lista de limitações e de restrições, confira Desanexar e anexar um banco de dados (SQL Server).

Permissões

Requer associação na função de banco de dados fixa db_owner.

Usar o SQL Server Management Studio

Antes de mover um banco de dados

Se você estiver movendo um banco de dados, antes de desanexá-lo da instância do SQL Server existente, use a página de Propriedades do Banco de Dados para fazer uma revisão dos arquivos associados ao banco de dados e às localizações atuais.

  1. No Pesquisador de Objetos do SQL Server Management Studio, conecte-se a uma instância do Mecanismo de Banco de Dados do SQL Server e expanda a instância.

  2. Expanda Bancos de Dadose selecione o nome do banco de dados de usuário que você quer desanexar.

  3. Clique com o botão direito do mouse no nome do banco de dados e selecione Propriedades. Selecione a página Arquivos e examine as entradas na tabela Arquivos de banco de dados:.

Não se esqueça de considerar todos os arquivos associados ao banco de dados antes de desanexar, mover e anexar. Depois, prossiga com as etapas para desanexar na próxima seção. Para obter mais informações sobre como anexar o banco de dados em uma nova localização, confira Anexar um banco de dados.

Desanexar um banco de dados

  1. No Pesquisador de Objetos do SQL Server Management Studio, conecte-se a uma instância do Mecanismo de Banco de Dados do SQL Server e expanda a instância.

  2. Expanda Bancos de Dadose selecione o nome do banco de dados de usuário que você quer desanexar.

  3. Clique com o botão direito do mouse no nome do banco de dados, aponte para Tarefase selecione Desanexar. A caixa de diálogo Desanexar Banco de Dados é exibida.

    • Bancos de dados para desanexar: lista os bancos de dados a serem desanexados.

    • Nome do Banco de Dados: exibe o nome do banco de dados a ser desanexado.

    • Descartar Conexões: desconecta conexões realizadas com o banco de dados especificado.

      Observação

      Você não pode desanexar um banco de dados com conexões ativas.

    • Atualização de Estatísticas: por padrão, a operação de desanexação retém estatísticas de otimização desatualizadas ao desanexar o banco de dados. Para atualizar as estatísticas de otimização existentes, selecione esta caixa de seleção.

    • Manter Catálogos de Texto Completos: por padrão, a operação de desanexação mantém todos os catálogos de texto completos associados ao banco de dados. Para removê-los, desmarque a caixa de seleção Manter Catálogos de Texto Completo . Essa opção é exibida apenas quando você está atualizando um banco de dados do SQL Server 2005 (9.x).

    • Status: exibe um dos seguintes estados: Pronto ou Não Pronto.

    • Mensagem: a coluna Mensagem pode exibir informações sobre o banco de dados, como apresentado a seguir:

      • Quando um banco de dados estiver envolvido com replicação, o Status será Não pronto e a coluna Mensagem exibirá Banco de Dados replicado.

      • Quando um banco de dados tem uma ou mais conexões habilitas, o Status é Não pronto e a coluna Mensagem exibe <número_de_conexões_ativas>Conexões ativas. Por exemplo: 1 Conexão(ões) ativa(s). Para desanexar o banco de dados, cancele qualquer conexão ativa selecionando Remover Conexões.

      Para obter mais informações sobre uma mensagem, selecione o texto com hiperlink para abrir o Monitor de Atividades.

  4. Quando estiver com tudo pronto para desanexar o banco de dados, selecione OK.

Observação

O banco de dados recém-desanexado permanecerá visível no nó Bancos de Dados do Pesquisador de Objetos até que a exibição seja atualizada. É possível renovar a exibição quando desejar. Para isso, selecione no painel Pesquisador de Objetos e, na barra de menus, selecione Exibição e, em seguida, Renovar.

Usar o Transact-SQL

Antes de mover um banco de dados

Se você estiver movendo um banco de dados, antes de desanexá-lo da instância do SQL Server existente, use a exibição do catálogo do sistema sys.database_files para fazer uma revisão dos arquivos associados ao banco de dados e às localizações atuais. Para obter mais informações, confira sys.database_files (Transact-SQL).

  1. No SQL Server Management Studio, selecione Nova Consulta para abrir o Editor de Consultas.

  2. Copie o script Transact-SQL a seguir no Editor de Consultas e selecione Executar. Este script exibe a localização dos arquivos de banco de dados físicos. Não se esqueça de considerar todos os arquivos ao mover o banco de dados por desanexação/anexação.

    USE [database_name]
    GO
    
    SELECT type_desc, name, physical_name
    FROM sys.database_files;
    

Não se esqueça de considerar todos os arquivos associados ao banco de dados antes de desanexar, mover e anexar. Depois, prossiga com as etapas para desanexar na próxima seção. Para obter mais informações sobre como anexar o banco de dados em uma nova localização, confira Anexar um banco de dados.

Desanexar um banco de dados

  1. Conecte-se ao Mecanismo de Banco de Dados.

  2. Na barra Padrão, selecione Nova Consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e selecione Executar. Este exemplo desanexa o banco de dados AdventureWorks2022 com a opção skipchecks definida como true. Para obter mais informações, confira sp_detach_db.

    EXEC sp_detach_db 'AdventureWorks2022', 'true';