Есть ли способ конвертировать mdf-файл SQL Server 2008 в версию SQL Server Express? - PullRequest
3 голосов
/ 17 августа 2011

У меня есть файл mdf, который является файлом SQL Server 2008. Я хочу преобразовать его в SQL Server Express или SQL Compact Edition.

Есть ли какой-нибудь инструмент для его конвертации?

Ответы [ 2 ]

5 голосов
/ 17 августа 2011

Для SQL Server - Express или Standard / Web / Developer - в форматах файлов нет разницы . Ваш MDF из SQL Server 2008 будет работать на SQL Server 2008 (или 2008 R2) Express без какого-либо преобразования или модификации.

Вы можете

  • создать резервную копию из SQL Server 2008 (в файл .bak) и восстановить ее в SQL Server 2008 Express

или

  • вы можете отсоединить файл MDF от SQL Server 2008, скопировать файлы в новое место (или на новый сервер), а затем снова присоединить их к установленному там SQL Server 2008 Express.

SQL Server Compact Edition - это совсем другая история - он состоит из одного .SDF файла и не может быть легко создан из существующего набора файлов SQL Server 2008 MDF / LDF .... Я хотел бы Интересно, есть ли какие-нибудь полезные инструменты для переноса данных из SQL Server 2008 (MDF / LDF) в формат SQL Server Compact Edition 4.0 (SDF) ...

Обновление: Быстрый поиск нашел несколько интересных кандидатов:

3 голосов
/ 17 августа 2011

Если вы не используете функции, которые не работают в Express Edition (например, секционирование), ваша база данных 2008 также подходит для SQL Server 2008 Express. Если база данных в настоящее время где-то прикреплена, вы можете проверить эти функции, используя:

SELECT feature_name, feature_id
  FROM sys.dm_db_persisted_sku_features;

В идеале это вернет 0 строк. Если он возвращает какие-либо строки, вполне вероятно, что вы используете функции, не подходящие для Express.

Также гораздо безопаснее для BACKUP / RESTORE, чем отсоединить / присоединить, если база данных фактически все еще подключена к экземпляру 2008 года - таким образом, если что-то пойдет не так, ваша исходная база данных останется нетронутой. Таким образом, если он подключен, вы можете выполнить команду BACKUP DATABASE на экземпляре 2008, а затем запустить RESTORE DATABASE (возможно, используя параметры WITH MOVE для хранения файлов в нужном месте) на экземпляре Express. (Все еще проще было бы установить базу данных в автономном режиме, скопировать файлы и снова установить базу данных в режиме онлайн - но я все еще предпочитаю маршрут BACKUP / RESTORE.)

BACKUP:

http://msdn.microsoft.com/en-us/library/ms186865%28SQL.100%29.aspx

ВОССТАНОВЛЕНИЕ:

http://msdn.microsoft.com/en-us/library/ms186858%28SQL.100%29.aspx

Если все, что у вас есть, это файл MDF / LDF, то в SQL Server 2008 Express вы сможете использовать CREATE DATABASE ... FOR ATTACH / FOR ATTACH_REBUILD_LOG. Вы можете прочитать о синтаксисе здесь:

СОЗДАТЬ БАЗУ ДАННЫХ:

http://msdn.microsoft.com/en-us/library/ms176061%28SQL.100%29.aspx

Если у вас возникли проблемы с какой-либо из этих команд, опубликуйте, что вы пробовали и какое сообщение об ошибке вы получили.

Что касается Compact Edition, нет, я не знаю каких-либо инструментов, которые преобразуют вашу базу данных для вас. Наборы функций и даже некоторые языковые конструкции несовместимы между собой.

...