Как присоединить базу данных sql
Перейти к содержимому

Как присоединить базу данных sql

  • автор:

Отсоединение базы данных и подключение (SQL Server)

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

Разрешения

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

Рекомендуется не подключать или восстанавливать базы данных из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Прежде чем использовать базу данных из неизвестного или ненадежного источника, запустите DBCC CHECKDB (Transact-SQL) в базе данных на непроизводном сервере, а также изучите код, например хранимые процедуры или другой определяемый пользователем код в базе данных.

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

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

Вы не можете отсоединить базу данных, если одно из следующих значений имеет значение true:

    База данных реплицируется и публикуется. При репликации база данных должна быть снята с публикации. Перед тем как отсоединить базу данных, необходимо отключить публикацию, выполнив процедуру sp_replicationdboption.

Примечание. Если вы не можете использовать sp_replicationdboption , можно удалить реплика tion, выполнив sp_removedb реплика tion.

Примечание. Моментальный снимок базы данных не может быть отключен или присоединен.

Резервное копирование, восстановление и отключение

Для разностных резервных копий отсоединение базы данных, доступной только для чтения, приводит к потере сведений о базовой копии для разностного копирования. Дополнительные сведения см. в разделе разностных резервных копий (SQL Server).

Реагирование на ошибки отсоединения

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

  1. Заново присоедините все файлы, связанные с базой данных, а не только первичный файл.
  2. Исправьте неполадку, ставшую причиной сообщения об ошибке.
  3. Отсоедините базу данных повторно.

Присоединение базы данных

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

При присоединении базы данных все файлы данных ( .mdf и .ndf файлы) должны быть доступны. Если у какого-либо файла данных путь отличается от того, каким он был при первом создании или последнем присоединении, необходимо указать текущий путь к файлу.

Если присоединенный первичный файл данных доступен только для чтения, ядро СУБД предполагает, что база данных доступна только для чтения.

При первом присоединении зашифрованной базы данных к экземпляру SQL Server владелец базы данных должен открыть главный ключ базы данных (DMK), выполнив следующую инструкцию: OPEN MASTER KEY DECRYPTION BY PASSWORD = ‘password’ Рекомендуется включить автоматическую расшифровку dmK, выполнив следующую инструкцию: ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY Дополнительные сведения см. в статьях CREATE MASTER KEY (Transact-SQL) и ALTER MASTER KEY (Transact-SQL).

Требования для присоединения файлов журналов частично зависят от того, доступна база данных для записи и чтения или только для чтения.

  • Для базы данных, доступной для записи и чтения, обычно можно присоединить файл журнала в новом расположении. Однако в некоторых случаях для повторного соединения базы данных требуются файлы ее существующих журналов. Поэтому важно всегда хранить все отсоединяемые файлы журнала, пока база данных не будет успешно подключена без них. Если база данных для чтения и записи содержит один файл журнала, и вы не указываете новое расположение для файла журнала, операция присоединения выглядит в старом расположении для файла. Если старый файл журнала найден, он используется независимо от того, была ли база данных закрыта. Однако если старый файл журнала не найден, и если база данных была закрыта и не имеет активной цепочки журналов, операция присоединения пытается создать новый файл журнала для базы данных.
  • Если присоединенный первичный файл данных доступен только для чтения, ядро СУБД предполагает, что база данных доступна только для чтения. Для базы данных, доступной только для чтения, файл или файлы журнала должны быть доступны в расположении, указанном в первичном файле базы данных. Невозможно создать новый файл журнала, так как SQL Server не может обновить расположение журнала, хранящееся в основном файле.

Изменения метаданных при присоединении базы данных

Если база данных, доступная только для чтения, отсоединяется, а затем снова присоединяется, то данные о текущей базовой копии для разностного копирования будут утеряны. Базовая копия для разностного копирования — это последняя из полных резервных копий всех данных из базы данных или из подмножества файлов и файловых групп, содержащихся в базе данных. Без сведений master о базовом резервном копировании база данных становится несинхронизирована с базой данных только для чтения, поэтому разностные резервные копии, сделанные после этого, могут привести к непредвиденным результатам. Таким образом, если вы используете разностные резервные копии с базой данных, доступной только для чтения, необходимо установить новую разностную базу, выполнив полную резервную копию после повторного кэширования базы данных. Сведения о разностных резервных копиях см. в разделе «Разностные резервные копии» (SQL Server).

После присоединения происходит запуск базы данных. Обычно присоединение базы данных переводит ее в то же состояние, в котором она находилась на момент отсоединения или копирования. Однако операции присоединения и отсоединения отключают создание межбазовых цепочек владения для этой базы данных. Сведения о том, как включить цепочки владения, см. в разделе Параметр конфигурации сервера «cross db ownership chaining».

По умолчанию в целях безопасности параметры is_broker_enabled, is_honor_broker_priority_on и is_trustworthy_on устанавливаются в значение OFF при подключении базы данных. Сведения о настройке этих параметров см. в статье ALTER DATABASE (Transact-SQL). Дополнительные сведения о метаданных см. в разделе «Управление метаданными при создании базы данных» на другом сервере.

Резервное копирование, восстановление и подключение

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

Присоединение базы данных к другому экземпляру сервера

База данных, созданная более последней версией SQL Server, не может быть присоединена в более ранних версиях. Это исключает физическое использование базы данных с более старой версией ядро СУБД. Однако это относится к состоянию метаданных и не влияет на уровень совместимости базы данных. Дополнительные сведения см. на уровне совместимости ALTER DATABASE (Transact-SQL).

Чтобы обеспечить согласованный интерфейс для пользователей и приложений, при присоединении базы данных к другому экземпляру сервера может потребоваться повторно создать некоторые или все метаданные для базы данных на другом экземпляре сервера. Эти метаданные включают такие как имена входа и задания. Дополнительные сведения см. в разделе «Управление метаданными при создании базы данных» на другом сервере.

Связанные задачи

Задача Статья
Отсоединение базы данных — sp_detach_db (Transact-SQL)
— Отсоединение базы данных
Присоединение базы данных — CREATE DATABASE
— Присоединение базы данных
— sp_attach_db (Transact-SQL)
— sp_attach_single_file_db (Transact-SQL)
Обновление базы данных с помощью операций отсоединения и подключения — Обновление базы данных с помощью отсоединения и подключения (Transact-SQL)
Перемещение базы данных с помощью операций отсоединения и подключения — Перемещение базы данных с помощью отсоединения и подключения (Transact-SQL)
Удаление моментального снимка базы данных — Удаление моментального снимка базы данных (Transact-SQL)

Связанный контент

Отсоединение и присоединение баз данных в Microsoft SQL Server (Detach и Attach)

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

Отсоединение и присоединение баз данных в MS SQL Server

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

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

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

Вы можете найти и другое применение данной возможности, но перечисленные выше ситуации, особенно первая, самые распространённые.

Отсоединение баз данных в Microsoft SQL Server

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

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

Отсоединить базу данных можно разными способами, например, на языке T-SQL, т.е. используя процедуру sp_detach_db или также можно воспользоваться графическим инструментом, т.е. SQL Server Management Studio. Мы с Вами разберем оба способа.

Примечание! Все примеры ниже будут рассмотрены на Microsoft SQL Server 2008 R2.

Отсоединение базы данных с помощью sp_detach_db

sp_detach_db – системная хранимая процедура, которая отсоединяет базу данных от экземпляра SQL сервера, а также может выполнить инструкцию UPDATE STATISTICS для всех таблиц перед отключением.

В качестве первого параметра она принимает имя базы данных, в качестве второго TRUE/FALSE (в виде текста), по умолчанию TRUE, т.е. это означает — не выполнять инструкцию UPDATE STATISTICS. Еще есть и третий параметр, который указывает, удалять или не удалять полнотекстовый индексный файл, связанный с отключаемой базой данных, по умолчанию TRUE, т.е. это означает — что метаданные, связанные с полнотекстовыми данными, сохраняются. Но этот параметр в новых версиях будет удален, честно говоря, не проверял на последних версиях, но разработчики SQL сервера не рекомендуют использовать этот параметр, уже начиная с версии 2008 R2.

sp_detach_db @dbname = 'database_name', @skipchecks = 'skipchecks', @keepfulltextindexfile = 'KeepFulltextIndexFile'

Пример. Допустим, у нас есть база данных TestBase, и возникла необходимость ее отсоединить, для этого мы пишем следующую SQL инструкцию:

EXEC sp_detach_db @dbname = 'TestBase'

Скриншот 1

Отсоединение базы данных с помощью Management Studio

Для того чтобы отсоединить базу данных необходимо в обозревателе объектов раскрыть список «Базы данных» и по нужной базе щелкнуть правой кнопкой мыши и нажать «Задачи ->Отсоединить»

Скриншот 2

И для того чтобы получить точно такой же результат, как и в примере выше жмем сразу «ОК»

Скриншот 3

Примечание! Как в первом примере, так и во втором не забываем про монопольный доступ, его можно получить, например, установив параметр базы данных «Ограничение доступа» в SINGLE_USER.

Присоединение баз данных в MS SQL Server

Для того чтобы присоединить базу данных, необходимы соответственно файлы этой базы данных, т.е. mdf, ldf. В случаях если журналы транзакций, т.е. файлы ldf не указаны, то они будут перестроены, но только в том случае если присоединяемая база данных доступна как для чтения, так и для записи. Если база данных была закрыта аварийно, при этом в ней работали пользователи и были открытые транзакции, то файлы журнала транзакций лучше указывать. Присоединять базы данных, полученные из неизвестных источников, не рекомендуется.

Также как и при отсоединении присоединить базу данных можно несколькими способами, мы рассмотри три: это с помощью конструкции CREATE DATABASE, с помощью Management Studio, а также рассмотрим пример присоединения базы данных с использованием процедуры sp_attach_db.

Примечание! В документации указано, что возможность присоединять базы данных с помощью процедуры sp_attach_db в будущих версиях SQL сервера будет удалена, поэтому ее не рекомендуют использовать в новых разработках, в SQL Server 2008 R2 эта возможность ещё есть.

Присоединение базы данных с помощью CREATE DATABASE

Конструкция CREATE DATABASE используется не только для создания новой базы данных, но и для присоединения базы данных, которую ранее отсоединили.

Давайте с помощью конструкции CREATE DATABASE присоединим обратно базу TestBase, которую выше мы отсоединили.

CREATE DATABASE [TestBase] ON (FILENAME = N'C:\TestBase.mdf'), (FILENAME = N'C:\TestBase_log.ldf') FOR ATTACH GO

Скриншот 4

Как Вы понимаете C:\TestBase.mdf и C:\TestBase_log.ldf — это пути к файлам базы данных.

Присоединение базы данных с помощью Management Studio

В Management Studio присоединение делается следующим образом, в обозревателе объектов щёлкните правой кнопкой мыши по пункту «Базы данных» и нажмите «Присоединить»

Скриншот 5

Затем через кнопку «Добавить» выбираем файл базы данных (MDF-файл) и жмем «ОК».

Скриншот 6

Примечание! Если выбрать базу данных, которая уже присоединена, возникнет ошибка.

Присоединение базы данных с помощью процедуры sp_attach_db

sp_attach_db – системная хранимая процедура, которая присоединяет базы данных к экземпляру SQL сервера. Как было уже сказано выше, ее не рекомендуют использовать в новых разработках. Первым параметром передается имя базы данных присоединяемой к серверу, оно должно быть уникальным. Вторым и далее (до 16) передаются пути к файлам базы данных.

sp_attach_db @dbname = 'dbname', @filename1 = 'filename_n', [. 16]
EXEC sp_attach_db @dbname = 'TestBase', @filename1 = N'C:\TestBase.mdf', @filename2 = N'C:\TestBase_log.ldf'

Скриншот 7

Примечание! В случае если Вам необходимо присоединить более 16 файлов, то нужно использовать CREATE DATABASE database_name FOR ATTACH.

Заметка! Если Вас интересует SQL и T-SQL, рекомендую посмотреть мои видеокурсы по T-SQL, с помощью которых Вы «с нуля» научитесь работать с SQL и программировать с использованием языка T-SQL в Microsoft SQL Server.

На этом у меня все, надеюсь, материал был Вам полезен, удачи!

Как присоединить базу данных SQL Server: подробное руководство для начинающих

Чтобы присоединить базу данных SQL Server, вам понадобятся следующие шаги: 1. Установите SQL Server Management Studio (SSMS), если у вас еще нет этого инструмента. SSMS позволяет вам управлять базами данных и выполнять различные операции. 2. Откройте SSMS и подключитесь к серверу баз данных SQL Server. Для этого введите имя сервера и учетные данные (имя пользователя и пароль), если они требуются. Пример кода:

 USE master; GO CREATE DATABASE YourDatabaseName; GO 

В приведенном выше примере мы создаем новую базу данных с именем «YourDatabaseName» в системной базе данных «master». Вы можете использовать другие команды SQL для создания таблиц, индексов и других объектов базы данных.

Детальный ответ

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

1. Установка SQL Server

Первым шагом является установка SQL Server на вашем компьютере. Это можно сделать, загрузив файл установки и следуя инструкциям на экране. После установки вам будет доступна программа SQL Server Management Studio (SSMS), с помощью которой вы сможете управлять вашими базами данных.

2. Создание базы данных

Для присоединения базы данных необходимо иметь готовую базу данных. Вы можете создать новую базу данных в SSMS, выполнив следующий SQL-запрос:

 CREATE DATABASE YourDatabaseName; 

Здесь «YourDatabaseName» — это имя вашей базы данных. Вы можете выбрать любое удобное имя.

3. Присоединение базы данных

  • Откройте Visual Studio и выберите проект, к которому вы хотите присоединить базу данных.
  • Щелкните правой кнопкой мыши на проекте в обозревателе решений и выберите «Добавить» → «Существующий элемент».
  • Выберите файл базы данных (.mdf), который вы хотите присоединить, и щелкните «Добавить».
  • Убедитесь, что файл базы данных включен в проект, правой кнопкой мыши на нем в обозревателе решений и выбрав «Включить в проект».

4. Подключение к базе данных

Теперь, когда ваша база данных присоединена к проекту, вы можете установить соединение с ней и выполнять операции с данными. Вот пример кода C# для подключения к базе данных:

 using System; using System.Data.SqlClient; namespace YourNamespace < class Program < static void Main(string[] args) < string connectionString = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=path_to_your_database.mdf;Integrated Security=True"; using (SqlConnection connection = new SqlConnection(connectionString)) < connection.Open(); // Выполнение операций с базой данных >> > > 

Здесь «path_to_your_database.mdf» — это путь к файлу базы данных в вашем проекте. Убедитесь, что заменили его на фактический путь к вашей базе данных.

5. Работа с данными

Теперь, когда у вас есть подключение к базе данных, вы можете выполнять различные операции с данными, такие как чтение, запись, обновление и удаление. Вот пример кода C# для выполнения запроса SELECT и вывода результатов:

 using System; using System.Data.SqlClient; namespace YourNamespace < class Program < static void Main(string[] args) < string connectionString = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=path_to_your_database.mdf;Integrated Security=True"; using (SqlConnection connection = new SqlConnection(connectionString)) < connection.Open(); string sql = "SELECT * FROM YourTable"; SqlCommand command = new SqlCommand(sql, connection); using (SqlDataReader reader = command.ExecuteReader()) < while (reader.Read()) < Console.WriteLine(reader["Column1"] + " " + reader["Column2"]); >> > > > > 

Здесь «YourTable» — это имя таблицы в вашей базе данных. Замените его на фактическое имя вашей таблицы.

Заключение

Присоединение базы данных SQL Server к вашему проекту может быть простой задачей при следовании нескольким простым шагам. Установите SQL Server, создайте базу данных, присоедините ее к вашему проекту и используйте соответствующий код для подключения и работы с данными. Удачи в вашем программировании!

Как создать базу данных в среде SQL Server

wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 15 человек(а).

Количество просмотров этой статьи: 48 246.

В этой статье:

Базы данных SQL Server являются одними из наиболее распространенных баз данных, во многом благодаря тому, как легко их создавать и поддерживать. С программой с бесплатным графическим пользовательским интерфейсом (GUI), такой как SQL Server Management, вам не нужно беспокоиться об использовании командной строки. См. Шаг 1 ниже, чтобы создать базу данных и начать ввод информации в течение нескольких минут.

Step 1 Инсталлируйте программное обеспечение SQL Server Management Studio.

  • Для подключения к удаленному экземпляру сервера SQL вам потребуется это или аналогичное программное обеспечение.
  • Пользователи Mac могут использовать программы с открытым исходным кодом, такие как DbVisualizer или SQuirreL SQL. Интерфейсы будут отличаться, но общие принципы одни и те же. [1] X Источник информации
  • Чтобы узнать, как создавать базы данных с помощью инструментов командной строки, см. это руководство.

Step 2 Запустите SQL Server Management Studio.

  • Нажмите кнопку Подключить чтобы продолжить.

Step 3 Определите место для папки Databases.

Определите место для папки Databases. После выполнения соединения с сервером (локальное или удаленное), откроется окно обозревателя объектов Object Explorer в левой стороне экрана. В верхней части дерева обозревателя объектов будет сервер, к которому вы подключены. Если дерево не расширено, нажмите на значок «+» рядом с ним. Определите место папки базы данных Databases. [2] X Источник информации

Step 4 Создайте новую базу данных.

  • Вы заметите, что при вводе имени базы данных два дополнительных файла будут созданы автоматически: Data и Log. Файл данных (Data) вмещает все данные в вашей базе данных, в то время как файл журнала (Log) отслеживает изменения в базе данных.
  • Нажмите кнопку OK, чтобы создать базу данных. Вы увидите вашу новую базу данных, которая появится в развернутой папке Databases. Она будет иметь значок цилиндра.

Step 5 Создайте таблицу.

  • Windows откроется в остальной части экрана, позволяя вам управлять вашей новой таблицей.

Step 6 Создайте Primary Key (первичный ключ).

  • Вы же не хотите допустить нулевые значения, так как всегда хотите иметь запись по крайней мере «1». Если вы разрешите 0, ваша первая запись будет «0».
  • В окне Column Properties прокрутите вниз, пока не найдете опцию Identity Specification. Разверните ее и установите «(ls Identity)» на «Yes». Эта опция автоматически увеличит значение столбца ID для каждой записи, автоматически нумеруя каждую новую запись.

Step 7 Разберитесь, как устроены таблицы.

Разберитесь, как устроены таблицы. Таблицы состоят из полей или столбцов. Каждый столбец представляет один из аспектов записи базы данных. Например, если вы создаете базу данных сотрудников, вы можете иметь столбец «FirstName», столбец «LastName», столбец «Address» и столбец «PhoneNumber».

Step 8 Создайте остальные столбцы.

  • nchar(#) — это тип данных следует использовать для текста, как имена, адреса и т.д. Число в скобках – это максимальное количество символов, разрешенное для это го поля. Установление лимита гарантирует, что ваш размер базы данных остается управляемым. Номера телефонов должны быть сохранены в этом формате, так как вы не выполняете математические функции с ними.
  • int — это целые числа, и обычно используются в поле идентификатора.
  • decimal(x,y) — будут хранить числа в десятичной форме, а числа в скобках обозначают соответственно общее количество цифр и количество цифр после десятичной. Например, decimal(6,2) будет сохранять числа как 0000.00.

Step 9 Сохраните вашу таблицу.

Сохраните вашу таблицу. Когда вы закончите создавать свои столбцы, то вам нужно сохранить таблицу перед вводом информации. Щелкните на значке Save на панели инструментов, а затем введите название таблицы. Рекомендуется присваивать имя таблице таким образом, чтобы оно помогло вам распознать содержимое, особенно для больших баз данных с несколькими таблицами.

Step 10 Добавьте данные в вашу таблицу.

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

Step 11 Запустите таблицу, чтобы сохранить данные.

  • Если есть какие-либо ошибки, вам будет показано, какие записи заполняются неправильно, прежде чем таблица может быть запущена.

Step 12 Выполните запрос ваших данных.

Выполните запрос ваших данных. На данный момент ваша база данных создана. Вы можете создать столько таблиц, сколько вам нужно в каждой базе данных (есть предел, но большинству пользователей не нужно будет беспокоиться, если они работают в базах данных корпоративного уровня). Теперь можете запросить ваши данные (создать Запрос) для отчетов или любых других административных целей. Просмотрите это руководство для получения подробной информации о текущих запросах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *