Published on

January 30, 2020

Как прикрепить файлы MDF SQL Server

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

Понимание файлов базы данных

Прежде чем мы приступим к процессу прикрепления, давайте сначала разберем различные типы файлов базы данных в SQL Server:

  • Основной файл данных (файл MDF): Это основной файл данных, в котором хранятся столбцы, поля, строки, индексы, таблицы и приложения базы данных.
  • Вторичный файл данных (файл NDF): Это необязательные файлы, используемые для разделения данных по нескольким дискам сервера базы данных.
  • Файл журнала (файл LDF): В этом файле хранятся изменения, внесенные в базу данных, такие как операции вставки, обновления и удаления. Он необходим для восстановления базы данных.

Поиск расположения файлов MDF

Для прикрепления файла MDF нам сначала нужно знать его расположение. Мы можем получить эту информацию, выполнив запрос к системным представлениям sys.database_files и sys.master_files. Первое предоставляет информацию, специфичную для базы данных, а второе предоставляет физическое расположение всех баз данных.

Вот пример запроса для получения расположения файлов MDF из sys.master_files:

USE master;
SELECT db_name(database_id) AS [Имя базы данных],
       type_desc AS [Тип файла],
       physical_name AS [Расположение файла базы данных]
FROM sys.master_files
WHERE database_id >= 5; -- Исключить системные базы данных

Мы также можем использовать представление sys.database_files для получения информации о файлах базы данных для конкретной базы данных:

USE WideWorldImporters;
SELECT db_name() AS [Имя базы данных],
       type_desc AS [Тип файла],
       physical_name AS [Расположение файла базы данных]
FROM sys.database_files;

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

  1. Откройте SSMS и подключитесь к серверу баз данных.
  2. Разверните папку “Базы данных”.
  3. Щелкните правой кнопкой мыши на нужной базе данных (например, “WideWorldImporters”) и выберите “Свойства”.
  4. В окне свойств выберите вкладку “Файлы”.
  5. В столбцах “Путь” и “Имя файла” будет отображаться расположение файлов базы данных.

Прикрепление файлов MDF

Существуют два основных метода прикрепления файлов MDF: с использованием SQL Server Management Studio (SSMS) и с использованием T-SQL скриптов.

Метод 1: Прикрепление файла MDF с помощью SSMS

Чтобы прикрепить базу данных с помощью SSMS, выполните следующие шаги:

  1. Откройте SSMS и подключитесь к серверу баз данных.
  2. Щелкните правой кнопкой мыши на папке “Базы данных” и выберите “Прикрепить”.
  3. В диалоговом окне “Прикрепить базу данных” нажмите “Добавить”, чтобы найти файлы MDF.
  4. В диалоговом окне “Найти файлы базы данных” перейдите к нужному файлу(ам) MDF или укажите пользовательское расположение.
  5. Выберите нужный(ые) файл(ы) MDF и нажмите “ОК”.
  6. Проверьте детали базы данных в полях “Прикрепляемая база данных” и “Детали файла базы данных”.
  7. Нажмите “ОК”, чтобы прикрепить базу данных.

После успешного прикрепления базы данных вы сможете просмотреть ее в проводнике объектов SSMS.

Метод 2: Прикрепление файла MDF с помощью T-SQL запроса

Мы также можем прикрепить файлы MDF с помощью команд T-SQL. Вот два примера:

Использование команды “CREATE DATABASE.. WITH ATTACH”:

USE master;
CREATE DATABASE [ИмяБазыДанных]
ON (NAME = 'ЛогическоеИмяФайлаДанных', FILENAME = 'ИмяФайлаДанных'),
   (NAME = 'ЛогическоеИмяФайлаЖурнала', FILENAME = 'ИмяФайлаЖурнала')
FOR ATTACH;

Использование команды “exec sp_attach_db”:

USE master;
EXEC sp_attach_db @dbname = 'ИмяБазыДанных',
                  @filename1 = '<Расположение файла базы данных>',
                  @filename2 = '<Расположение файла журнала>';

Устранение ошибок

При прикреплении файлов MDF вы можете столкнуться с некоторыми распространенными ошибками. Вот два примера и их возможные решения:

Ошибка: Отказано в доступе из-за недостатка разрешений

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

  • Запустите SQL Server Management Studio от имени администратора и прикрепите базу данных.
  • Явно предоставьте полный доступ к файлу MDF и файлу LDF базы данных, щелкнув правой кнопкой мыши на файлах, выбрав вкладку “Безопасность” и предоставив полный доступ соответствующему пользователю.
  • Если вышеперечисленные решения не работают, скопируйте файлы базы данных в расположение файлов базы данных по умолчанию. Это автоматически предоставит пользователю необходимые разрешения.

Ошибка: Н

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.