Отсоединение базы данных
В этой статье описывается, как отсоединить базу данных в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Отсоединенные файлы не удаляются и остаются в файловой системе. Их можно присоединить повторно с помощью параметра CREATE DATABASE . FOR ATTACH или FOR ATTACH_REBUILD_LOG . Также файлы можно переместить на другой сервер и присоединить к экземпляру той же версии или более новой.
ограничения
Разрешения
Требуется членство в предопределенной роли базы данных db_owner.
Использование среды SQL Server Management Studio
Перед перемещением базы данных
Если вы перемещаете базу данных, перед ее отсоединением от существующего экземпляра SQL Server просмотрите связанные с ней файлы и их текущее расположение на странице Свойства базы данных.
- В обозревателе объектов SQL Server Management Studio подключитесь к экземпляру ядра СУБД SQL Server, а затем разверните экземпляр.
- Раскройте список Базы данныхи выберите имя пользовательской базы данных, которую необходимо отсоединить.
- Щелкните правой кнопкой мыши имя базы данных и выберите Свойства. Выберите страницу Файлы и просмотрите записи в таблице Файлы базы данных.
Убедитесь, что перед отсоединением, перемещением и присоединением базы данных вы проверили все связанные с ней файлы. Затем перейдите к этапам отсоединения, описанным в следующем разделе. Дополнительные сведения о присоединении базы данных в ее новом расположении см. в статье Присоединение базы данных.
Отсоединение базы данных
- В обозревателе объектов SQL Server Management Studio подключитесь к экземпляру ядра СУБД SQL Server, а затем разверните экземпляр.
- Раскройте список Базы данныхи выберите имя пользовательской базы данных, которую необходимо отсоединить.
- Щелкните правой кнопкой мыши имя базы данных, наведите курсор на пункт Задачи и выберите Отсоединить. Появится диалоговое окно Отсоединение базы данных . Базы данных для отсоединения
Перечисляет базы данных для отсоединения. Имя базы данных
Отображает имя базы данных для отсоединения. Удалить соединения
Завершить соединения с указанной базой данных.
Заметка Невозможно отсоединить базу данных с активными соединениями.
- Если база данных участвует в репликации, то ее Состояние имеет значение Не готово , а в столбце Сообщение отображается строка База данных реплицирована.
- Если база данных имеет одно или несколько активных подключений, состояние не готово, а столбец сообщения отображает >активные подключения. Например: Активных подключений: 1. Перед отсоединением базы данных необходимо отключить все активные подключения, выбрав команду Удалить подключения.
Чтобы получить сведения о сообщении, откройте монитор активности, щелкнув текст с гиперссылкой.
Отсоединенная база данных отображается в узле Базы данных обозревателя объектов до тех пор, пока не будет обновлено представление. Обновить его можно в любой момент, для этого щелкните панель обозревателя объектов и в строке меню выберите пункт Представление , а затем Обновить.
Использование Transact-SQL
Перед перемещением базы данных
Если вы перемещаете базу данных, перед ее отсоединением от существующего экземпляра SQL Server просмотрите связанные с ней файлы и их текущее расположение в представлении системного каталога sys.database_files . Для получения дополнительной информации см. sys.database_files (Transact-SQL).
- В СРЕДЕ SQL Server Management Studio выберите новый запрос , чтобы открыть редактор запросов.
- Скопируйте следующий скрипт Transact-SQL в редактор запросов и нажмите кнопку «Выполнить«. Этот скрипт показывает расположение физических файлов базы данных. Убедитесь, что при перемещении базы данных путем отсоединения и присоединения вы проверили все файлы.
USE [database_name] GO SELECT type_desc, name, physical_name from sys.database_files;
Убедитесь, что перед отсоединением, перемещением и присоединением базы данных вы проверили все связанные с ней файлы. Затем перейдите к этапам отсоединения, описанным в следующем разделе. Дополнительные сведения о присоединении базы данных в ее новом расположении см. в статье Присоединение базы данных.
Отсоединение базы данных
- Соединитесь с ядром СУБД .
- На стандартной панели выберите пункт Создать запрос.
- Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере база данных отсоединяется AdventureWorks2022 с заданным параметром skipchecks true . Дополнительные сведения см. в статье об использовании sp_detach_db.
EXEC sp_detach_db 'AdventureWorks2022', 'true';
См. также
- Отсоединение базы данных и подключение (SQL Server)
- sp_detach_db (Transact-SQL)
Далее
SQL localDB
LocalDB – это версия SQL Server, впервые представленная в составе SQL Server 2012 Express и предназначенная специально для разработчиков. Сервер SQL LocalDB инсталлируется совместно с установкой MS Visual Studio. Можно также установить локальный сервер в составе системы SQL Server Express. Sql LocalDB очень прост в установке, для управления данными использует T-SQL, такой же язык, как и полная версия SQL Server.
Sql LocalDB имеет низкие системные требования. Процессы локального сервера запускаются и останавливаются автоматически при необходимости. Через несколько минут после закрытия последнего подключения к локальному серверу процесс завершается. LocalDB может использоваться как встроенная база данных для небольших приложений.
Управление подключениями к серверу LocalDB можно осуществлять непосредственно из интегрированной среды программирования Visual Studio. Для этого используется инструментарий SQL Server Data Tools. Поддерживается создание, изменение, переименование и удаление таблиц, хранимых процедур, типов и функций.
Локальный сервер и инструменты работы с ним устанавливаются вместе со стандартной установкой MS Visual Studio, в ином случае это можно осуществить с помощью дополнительных настроек установщика Visual Studio Installer.
Примечание. Необходимо отметить, что описываемые процедуры создания, отсоединения, присоединения и удаления баз данных при работе с локальным сервером из среды программирования MS Visual Studio можно использовать с другими SQL серверами: SQL Server, SQL Server Express.
Создание базы данных в Обозревателе объектов SQL Server
Создать базу данных можно с помощью вкладки Visual Studio Обозреватель объектов SQL Server. Для этого необходимо открыть вкладку, выбрать объект (localdb)MSSQLLocalDB, в данном объекте выбрать папку Базы данных и щелкнуть по ней правой кнопкой мыши. В появившемся контекстном меню щелкнуть на пункт Добавить новую базу данных.
В диалоговом окне Создание базы данных ввести желаемое логическое имя базы. и подтвердить создание нажатием кнопки Ок. При необходимости можно указать место для сохранения создаваемой базы данных. После этих процедур в указанном месте появятся файлы с расширением *.ldf, *.mdf базы данных – база создана.
Логическое имя базы – это название базы данных в пределах её сервера данных, по которому приложение осуществляет запросы. Логическое имя не хранится внутри файла базы и его можно назначать при следующих подключениях любое другое, должно быть уникальным в пределах сервера. Имя базы присваивается InitialCatalog в строке подключения к серверу SQL LocalDB.
Создание базы данных SQL запросом
Создание базы данных можно осуществить SQL запросом, в окне редактора Transact-SQL. Создание базы скриптом требует некоторых знаний и навыков создания SQL скриптов, но это незначительное препятствие: хорошо изложенной документации по языку запросов SQL в интернете огромное количество.
Кроме того, ошибки поможет исправить интегрированная среда Visual Studio с её развитым отладочным режимом. После создания нескольких скриптов данный способ работы с базами данных покажется более удобным и рациональным.
Выбор сервера, на котором будет создана база данных происходит во вкладке Обозреватель объектов SQL Server: правой кнопкой мыши по названию сервера вызывается контекстное меню и далее нажатие на пункт меню Создать запрос. . Откроется окно редактора T-SQL скриптов, где можно писать скрипты для выбранного сервера.
SQL скрипт создания базы данных на выбранном сервере:
-- Название базы может быть любым, уникальным в пределах сервера SQL. CREATE DATABASE NameDB -- Если написанный ниже код удалить, -- для файлов базы данных будет использоваться путь по умолчанию -- и имена файлов будет определять название базы. ON ( -- Логическое имя файла, -- используется для ссылки на физический файл во всех инструкциях Transact-SQL, -- уникальное в пределах базы данных. NAME = 'LogicalNameFile', FILENAME = 'G:DBLogicalNameFile.mdf' )
Отсоединение базы данных
Для определенных целей во время разработок требуется отсоединение базы данных от сервера LocalDB, например, для подключения к другому SQL серверу или переноса базы данных на другой компьютер. Отсоединение базы данных от сервера не удаляет файлы базы и их можно переносить, отсылать и подключать к любому SQL серверу.
Для отсоединения базы данных от локального сервера необходимо в списке баз правой кнопкой мыши щелкнуть по названию отсоединяемой базы и в контекстном меню выбрать пункт Отсоединить. При отсоединении базы данных она физически не удаляется с жесткого диска.
Отсоединение базы желательно производить без открытия решения или после закрытия решения приложения работы с данной базой данных. Иначе, после запросов записи к базе данных, отсоединить её указанным выше способом будет невозможно и возникнет исключение: «Cannot detach the database ‘DB444’ because it is currently in use». Возможно в таких случаях второе активное подключение блокирует операцию отсоединения, читайте ниже в абзаце Подключение существующей базы данных.
Примечание. Будьте осторожны при случайном выборе вместо Отсоединить – Удалить, база в таком случае удаляется физически с носителя информации компьютера и не перекидывается в корзину. Рекомендуется время от время делать копии рабочей базы данных.
Отсоединение базы данных SQL скриптом
Для отсоединения базы данных рекомендуется использовать готовую функцию SQL, называемую хранимой процедурой. Данные функции упрощает повторное использование ранее созданного SQL скрипта или нескольких объединенных инструкций для сервера баз данных.
Выбор сервера и вызов контекстного меню для создания запроса аналогично описанному и показанному анимацией в Создание базы данных SQL запросом.
Программный код скрипта SQL отсоединения базы данных, данный код вводится в окно редактора Transact-SQL:
-- Хранимая процедура для SQL Server EXEC sp_detach_db 'NameDB';
Подключение существующей базы данных
К локальному SQL серверу можно подключить ранее отсоединённую базу или созданную в другой программе управления MS SQL базами данных.
Чтобы подключить существующую базу данных, находящуюся в какой-либо папке на компьютере необходимо в окне Обозреватель серверов щелкнуть мышью на ярлык Подключиться к базе данных. Либо щелкнуть правой мышью на заголовок Подключение данных. В появившемся контекстном меню щелкнуть на Добавить подключение.
В результате этих действий появится модальное окно ввода информации для подключения выбранного источника данных. Необходимо ввести путь к локальному серверу (localdb)MSSQLLocalDB (путь может быть отличаться от стандартного), выбрать Проверка подлинности Windows (или другой вид проверки, например, имя пользователя с паролем). В области Подключение к базе данных выбрать пункт Прикрепить файл базы данных. Далее указать путь к базе данных и ввести логическое имя базы. Если не указывать логическое имя, то названию базы присвоится строка пути до файла базы данных.
Имя подключаемого SQL локального сервера можно получить на вкладке Обозреватель объектов SQL серверов. При формальной попытке переименовать SQL сервер, в окошечке редактирования названия отобразиться название сервера. Либо правой кнопкой щелкнуть на названии сервера, вызвать его свойства и тогда название можно получить из строки подключения. Например, Data Source=(localdb)MSSQLLocalDB;… , (localdb)MSSQLLocalDB — и есть название сервера.
Подключения из вкладок Обозреватель серверов и Обозреватель объектов SQL Server это два активных подключения и в некоторых случаях они не позволяют выполнять операции с совместной базой данных, например, отсоединение. В таком случае можно закрыть подключение в окне Обозреватель серверов при помощи контекстного меню над именем базы. В случае отсоединения базы данных быстро восстановить подключение можно ярлыком Обновить либо из контекстного меню над именем подключенной базы. Такие активные подключения позволяют вам создавать объекты SQL в базе, читать и записывать данные.
Присоединение базы данных запросом на языке SQL
Существующую базу данных можно подключить к локальному серверу программным кодом на языке SQL. Во вкладке Обозреватель объектов SQL Server щелкнуть правой кнопкой мыши на строку с именем локального сервера и в контекстном меню нажать на команду Создать запрос. . Visual Studio откроет окно редактора Transact-SQL в котором можно создавать и редактировать SQL скрипты для выбранного сервера баз данных. Анимацию выбора сервера и вызова контекстного меню для создания запроса можно посмотреть в Создание базы данных SQL запросом.
Скрипт присоединения базы данных содержит обязательные данные: имя новой базы данных, полные пути к файлам базы данных, параметр FOR ATTACH (указывающий, что происходит присоединение существующей базы данных, но не создание новой).
SQL скрипт подключения существующей базы данных:
-- SQL запрос подключения существующей базы данных. CREATE DATABASE -- Новое базы данных, уникальное в пределах сервера SQL. DBInternetShop -- Настоящие пути к файлам базы данных. ON (FILENAME = 'G:DBDBInternetShop.mdf'), (FILENAME = 'G:DBDBInternetShop_log.ldf') FOR ATTACH
Удаление базы данных
Тестовые базы данных, дубликаты после работы с базами за ненужностью можно удалить с жесткого диска компьютера. Процесс удаления баз данных похож на отсоединение, но с важным отличием — файлы базы данных удаляются физически, без сохранения в корзине компьютера.
Чтобы случайно не удалить экземпляр-беловик базы данных настоятельно рекомендуется делать архивные копии файлов всех рабочих баз.
Для удаления базы данных необходимо вызвать контекстное меню правой кнопкой мыши на имени удаляемой базы. Выбрать пункт удалить, щелкнуть на данный пункт и в появившемся окошке нажать кнопку Ок.
По умолчанию галочка на Закрыть существующие соединения не ставится и если удаляемая база данных открыта в каком-либо подключении удалить её будет невозможно. Такие настройки по умолчанию уменьшают вероятность случайного удаления рабочей базы.
Для надёжного удаления подключенной базы данных предназначен пункт Закрыть существующие соединения. После неудачной попытки удаления необходимо заново вызвать модальное окно и поставить галочку на данный пункт. После этого база данных будет успешно удалена.
SQL скрипт удаления базы данных
Базу данных можно удалить SQL запросом, при этом база удаляется с сервера и физически удаляются файлы, принадлежащие данной базы. Удаление базы ответственная процедура поскольку восстановить её можно будет только из предварительно сделанной резервной копии. Перед удалением баз данных рекомендуется создавать резервные копии. Вызов окна редактора SQL запросов для выбранного сервера подробно описано выше, в Создание базы данных SQL запросом.
Скрипт SQL перед удалением может предварительно проверить существование данной базы на текущем сервере:
-- Скрипт удаляет базу данных, если база данных не существует ошибка не возникает. DROP DATABASE IF EXISTS -- с SQL Server 2016 (13.x) и выше NameDB;
Строка подключения к LocalDB
Строку подключения можно увидеть при вызове окна свойств правой кнопкой на объект SQL Server в окне Обозреватель объектов SQL Server. Например:
Data Source=(localdb)MSSQLLocalDB; Integrated Security=True;Connect Timeout=30; Encrypt=False;TrustServerCertificate=False; ApplicationIntent=ReadWrite; MultiSubnetFailover=False
Из строки подключения можно получить путь подключения к серверу. В окне свойств можно увидеть местонахождение по умолчанию баз данных текущего SQL сервера и другие характеристики.
SQL Server
Виртуальный хостинг Python
- Несколько версий Python одновременно
- Сайты на веб-фреймворках Django, Flask и др.
- Установка собственной версии Python
- Режимы CGI, FastCGI, mod_wsgi
- Бесплатный тестовый период — 10 дней
Отсоединение и Присоединение баз данных в MS SQL Server 2012
В ситуации когда необходимо перенести базу данных SQL с одного экземпляра MS SQL Server на другой, или изменить каталог хранения файлов базы данных, помогут операции отсоединения (Detach) и присоединения (Attach) баз данных MS SQL Server. Об этих операциях в MS SQL Server 2012 (справедливо и для более ранних редакций MS SQL Server) и пойдет речь в данной статье.
0. Оглавление
- Отсоединение базы данных в MS SQL Server 2012
- Присоединение базы данных в MS SQL Server 2012
1. Отсоединение базы данных в MS SQL Server 2012
Запускаем программу «SQL Server Management Studio». В Microsoft Windows Server 2012 R2 ее можно найти в списке всех программ.

В Microsoft Windows Server 2008 R2 в меню «Пуск» (Start) — «Microsoft SQL Server 2012» — «Среда SQL Server Management Studio».

Вводим имя сервера, данные для авторизации и нажимаем «Соединить» (Connect).

В обозревателе объектов (Odject Explorer) раскрываем вкладку «Базы данных» (Databases), кликаем правой кнопкой мыши по базе данных, которую необходимо отсоединить, и в контекстном меню выбираем «Задачи» (Tasks) — «Отсоединить…» (Detach…).

В появившемся окне отсоединения базы данных возможно очистить существующие соединения с базой установив флаг «Удалить соединения» (Drop Connections) (не рекомендуется, правильно будет попросить пользователей закрыть клиентские программы), а также обновить статистику для базы данных отметив соответственно флаг «Обновить статистику» (Update Statistics). Выбрав необходимые операции нажимаем «ОК».

После чего выбранная база данных исчезнет из списка баз данных экземпляра MS SQL Server.

Но файлы базы данных останутся на жестком диске в том каталоге, где они находились до отсоединения базы данных.
2. Присоединение базы данных в MS SQL Server 2012
После отсоединения базы с одного экземпляра MS SQL Server, перенесем файлы базы данных (по умолчанию — файл данных с расширением .mdf и файл журнала транзакций с расширением .ldf) на другой сервер с установленным MS SQL Server, или переместим эти файлы в другою директорию на этом же сервере. Затем снова подключимся к SQL серверу на который необходимо перенести базу данных с помощью программы «SQL Server Management Studio». В обозревателе объектов (Object Explorer) кликнем правой кнопкой мыши по вкладке «Базы данных» (Databases) и в контекстном меню выберем «Присоединить…» (Attach…)

В запустившемся окне присоединения базы данных, с помощью кнопки «Добавить…» (Add…) выберем файл данных с расширением .mdf (или файлы, если их несколько) нашей базы данных из каталога их нового расположения. В таблице сведений (Database details) мастер должен определить расположение файла данных, а также найти соответствующий файл журнала транзакций с расширением .ldf. Если все необходимые файлы определились мастером успешно, нажимаем «ОК» для запуска процесса присоединения базы.

После чего, наша база данных появится в списке баз данных конечного экземпляра MS SQL Server.

Помогла ли Вам данная статья?
Смотрите также:
Удаление компонент MS SQL Server 2012 Может случиться так, что в процессе установки MS SQL Server 2012 были установлены компоненты, необходимость в которых со временем отпала (или были установлены по ошибке). В этом случае, в целях…
Лицензирование MS SQL Server 2012 В данной статье будут рассмотрены способы лицензирования Microsoft SQL Server 2012. Будет приведен краткий обзор каждого из способов лицензирования, а также указаны возможные варианты лицензирования для различных выпусков MS SQL Server…
Редакции MS SQL Server 2012 Ниже приводится список существующих редакций Microsoft SQL Server 2012, а также приводится краткий обзор каждой из них. Microsoft SQL Server 2012 предлагается в нескольких специально разработанных редакциях:…
Запись опубликована в рубрике Microsoft SQL Server 2012 с метками SQL. Добавьте в закладки постоянную ссылку.
Attach и Detach базы в MS SQL
Как присоединить или отсоединить базу данных в MS SQL, другими словами выполнить Attach и Detach.

Если Вы уже какое-то время администрируете MS SQL, то скорее всего слышали такой термин как «Приаттачить» базу или сделать ее «Деттач» / «Аттач»
Конечно, данная тема также подымается и на курсе: Администратор 1С!
Операция действительно используется довольно часто для переноса базы, к примеру, на другой сервер или экземпляр MS SQL.
И действительно, ведь чтоб перенести базу, достаточно ее просто отсоединить (выполнить Detach) и затем на новом сервере СУБД присоединить (выполнив Attach). Быстро и удобно!
Конечно, Attach и Detach базы можно использовать и в ряде других случаев, к примеру, мы хотим просто перенести лог (*ldf файл журнала транзакций) на другой диск, или вместе с базой, и здесь нам также поможет команда «Деттач» и «Аттач». Иногда даже для бэкапа файлов *ldf и *mdf ее используют, конечно, это не есть хорошо, но также верный способ позволяющий скопировать файлы.
К слову если сервер СУБД работает, плюс база «Онлайн» тогда если предварительно не сделать Detach, или не перевести базу в offline (так называемый автономный режим), скопировать лог или базу мы не сможем, получим ошибку что файл используется!

В теории разобрались, приступим к практике.
Давайте представим ситуацию, что место на диске, где у нас лежит лог файл *ldf закончилось, и возникла задача по его переносу на другой диск.
Собственно чем мы сейчас и займемся!
И так все действия мы будем проводить в Management Studio.
Находим интересующую базу, затем правый клик мышкой – «Задачи» – «Отсоединить»

(В eng версии вместо «Отсоединить» будет «Detach»).
Затем в окне отсоединения базы следует поставить птичку «Удалить соединения».

ВАЖНО! Если с базой работают пользователи (к примеру в 1С Предприятии), есть активные соединения, тогда Вы без их завершения не сможете выполнить отсоединение базы!
Как видно на скрине выше, активных соединений нет, но птичку тем не менее поставить нужно, вдруг в момент отсоединения кто-то вздумает запустить 1С Предприятие.
Конечно в любом случаи при выполнении «Detach» базы, пользователей предварительно нужно уведомить о том что база будет недоступна кокой-то промежуток времени (Если с ней работают).
Ставить птичку возле “Обновить статистику” не рекомендую, иначе могут возникнуть на этом этапе различные ошибки, такие как перевод базы в “single user”, бывает что даже зависает Management Studio (.

После успешного отсоединения базы она исчезает из списка “Обозревателя объектов” (Но не из диска, там все файлы будут на месте и mdf и ldf) как на рисунке ниже.

Вот мы и смогли выполнить первую часть работы, отсоединили базу, сделали ее «Detach».
Теперь мы уже можем скопировать наш лог файл на другой диск (Рис. ниже):

И приступаем ко второму шагу по присоединению базы или как его еще называют “Приаттачим” базу используя все тот же Managmant Studio.
На “базах” правый клик мышкой и выбираем “Присоединить” / Attach.

Затем в окне “Присоединения базы” клик по кнопке “Добавить”

Сперва укажем расположение файла mdf (база). У меня это диск E:\DATA\BUHG1C.mdf

После того как мы кликнем по кнопке “ОК” увидим в окне ниже что MS SQL предполагает, что расположение файла лога соответствует расположению базы mdf, но конечно, лога по указанному месту уже нет, мы его переместили на другой диск, и теперь его следует указать вручную!

Укажем новое расположение лога кликнув по кнопке “…”


Убедившись что новое расположение лога указанно верно, можно кликнуть по кнопке “ОК”.

ВНИМАНИЕ! Если получили ошибку (рис. ниже)

Тогда скорее всего Вы пытаетесь выполнить данную операцию под пользователем (рутом) “SA”.
Все что нужно сделать, так это выполнить данную операцию от Администратора Windows (Если установили смешанный режим проверки подлинности, еще на этапе установки самого MS SQL).

Просто выбираем “Проверка подлинности Windows” при старте Managmant Studio.
И повторим действия с присоединением базы.
В случаи успеха, база вновь появится в списке баз обозревателя объектов! (Как на рисунке ниже).

Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С >>>