Отсоединение базы данных

Область применения: SQL Server

В этой статье описывается, как отсоединить базу данных в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Отсоединяемые файлы не удаляются и остаются в файловой системе. Их можно присоединить повторно с помощью параметра CREATE DATABASE ... FOR ATTACH или FOR ATTACH_REBUILD_LOG. Также файлы можно переместить на другой сервер и присоединить к экземпляру той же версии или более новой.

Ограничения

Список ограничений и ограничений см. в разделе "Отсоединение базы данных" и подключение (SQL Server).

Разрешения

Требуется членство в предопределенной роли базы данных db_owner.

Использование SQL Server Management Studio

Перед перемещением базы данных

Если вы перемещаете базу данных, прежде чем отсоединять ее от существующего экземпляра SQL Server, используйте страницу свойств базы данных для просмотра файлов, связанных с базой данных и их текущими расположениями.

  1. В обозреватель объектов SQL Server Management Studio подключитесь к экземпляру ядро СУБД SQL Server, а затем разверните экземпляр.

  2. Раскройте список Базы данныхи выберите имя пользовательской базы данных, которую необходимо отсоединить.

  3. Щелкните правой кнопкой мыши имя базы данных и выберите Свойства. Выберите страницу Файлы и просмотрите записи в таблице Файлы базы данных.

Убедитесь, что перед отсоединением, перемещением и присоединением базы данных вы проверили все связанные с ней файлы. Затем перейдите к этапам отсоединения, описанным в следующем разделе. Дополнительные сведения о присоединении базы данных в ее новом расположении см. в статье Присоединение базы данных.

Отсоединение базы данных

  1. В обозреватель объектов SQL Server Management Studio подключитесь к экземпляру ядро СУБД SQL Server, а затем разверните экземпляр.

  2. Раскройте список Базы данныхи выберите имя пользовательской базы данных, которую необходимо отсоединить.

  3. Щелкните правой кнопкой мыши имя базы данных, наведите курсор на пункт Задачи и выберите Отсоединить. Появится диалоговое окно Отсоединение базы данных .

    • Базы данных для отсоединения: перечисляет базы данных для отсоединения.

    • Имя базы данных: отображает имя отсоединяемой базы данных.

    • Удаление подключений: отключение подключений к указанной базе данных.

      Примечание.

      Невозможно отключить базу данных с активными подключениями.

    • Обновление статистики. По умолчанию операция отсоединения сохраняет любую устаревшую статистику оптимизации при отключении базы данных; чтобы обновить существующую статистику оптимизации, установите этот флажок.

    • Сохраняйте полнотекстовые каталоги. По умолчанию операция отсоединения сохраняет все полнотекстовые каталоги, связанные с базой данных. Для удаления этих каталогов сбросьте флажок Сохранять полнотекстовые каталоги . Этот параметр отображается только при обновлении базы данных из SQL Server 2005 (9.x).

    • Состояние: отображает одно из следующих состояний: готово или не готово.

    • Сообщение: столбец сообщения может отображать сведения о базе данных следующим образом:

      • Если база данных участвует в репликации, то ее Состояние имеет значение Не готово , а в столбце Сообщение отображается строка База данных реплицирована.

      • Если база данных имеет одно или несколько активных подключений, состояние не готово, а столбец сообщения отображает <number_of_active_connections>активные подключения. Например: Активных подключений: 1. Перед отсоединением базы данных необходимо отключить все активные подключения, выбрав команду Удалить подключения.

      Чтобы получить сведения о сообщении, откройте монитор активности, щелкнув текст с гиперссылкой.

  4. Когда вы будете готовы отсоединить базу данных, нажмите кнопку "ОК".

Примечание.

Отсоединенная база данных отображается в узле Базы данных обозревателя объектов до тех пор, пока не будет обновлено представление. Вы можете обновить представление в любое время: выберите в области обозреватель объектов и в строке меню выберите "Вид" и "Обновить".

Использование Transact-SQL

Перед перемещением базы данных

Если вы перемещаете базу данных, прежде чем отсоединять ее от существующего экземпляра SQL Server, используйте sys.database_files представление системного каталога для просмотра файлов, связанных с базой данных и их текущими расположениями. Для получения дополнительной информации см. sys.database_files (Transact-SQL).

  1. В СРЕДЕ SQL Server Management Studio выберите новый запрос, чтобы открыть Редактор запросов.

  2. Скопируйте следующий скрипт Transact-SQL в Редактор запросов и нажмите кнопку "Выполнить". Этот скрипт показывает расположение физических файлов базы данных. Убедитесь, что при перемещении базы данных путем отсоединения и присоединения вы проверили все файлы.

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

Убедитесь, что перед отсоединением, перемещением и присоединением базы данных вы проверили все связанные с ней файлы. Затем перейдите к этапам отсоединения, описанным в следующем разделе. Дополнительные сведения о присоединении базы данных в ее новом расположении см. в статье Присоединение базы данных.

Отсоединение базы данных

  1. Соединитесь с ядром СУБД .

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере база данных отсоединяется AdventureWorks2022 с заданным параметром skipchecks true. Дополнительные сведения см. в статье об использовании sp_detach_db.

    EXEC sp_detach_db 'AdventureWorks2022', 'true';