войти · зарегистрироваться
А вы знаете, что:
Много ёлперов не бывает.

Реклама ↓

ключи стим .

Восстановление базы SQL Server 2008 на сервере SQL Server 2005

Файлы резервных копий (.bak) Microsoft SQL Server 2008 не совместимы с Microsoft SQL Server 2005, даже если база 2008 сервера будет работать в режиме совместимости с 2005 сервером. Но не стоит отчаиваться, решение есть и как восстановить базу данных из старшей версии SQL Server в младшей показано в этом ёлпере.
Кликните правой кнопкой мышки по базе данных в Microsoft SQL Server Management Studio 2008, которую требуется перенести в SQL Server 2005 (или 2000). В появившемся меню выберите Задачи => Сформировать сценарии...

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

В разделе «Выбор базы данных» установите опцию «Внести в сценарий все объекты в выделенной базе данных», чтобы более тонко настроить перенос базы.

635139248776245477559.png
В разделе «Параметры» в ветке «Общее» нужно выбрать версию SQL Server, для которого будет создаваться сценарий. В данном случае – SQL Server 2005, однако можно выбрать и SQL Server 2000.

635139248776713478559.png
Также следует обратить внимание на параметры «Внести в сценарий создание базы данных» и «Данные сценария». По умолчанию эти параметры имеют значение False (отключено). Если на SQL Server 2005 нет базы данных, то можно поставить опцию «Внести в сценарий создание базы данных», чтобы сформированный SQL-запрос создал базу данных автоматически. Если вам нужны данных, то следует включить опцию «Данные сценария», но здесь следует помнить, что конечный SQL может достичь гигантских размеров, в зависимости от объемов данных, хранящихся в базе. Остальные значения можно оставить по умолчанию.

На следующем шаге выберите вариант получения запроса. Если база большая, то лучше выбрать «Вывести сценарий в файл».


635139248777181479559.png
Нажмите на кнопку «Готово».

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

Если вы будете создавать сценарий с большим объемом данных в одном файле .sql, то памяти компьютера может не хватить для его выполнения, поэтому придется ставить опцию «Файл на объект» (см. предпоследнюю картинку данного ёлпера). После создания множества файлов их можно автоматически выполнить через простой .bat-файл:

/@echo off/<br />/for /r C:\путь к папке с файлами .sql %%g in (*) do SQLCMD.EXE -d [в какую базу выполнить запросы] -i "%%~nxg" -o "%%~nxg.log"/

Нам важно знать ваше мнение

Пожалуйста, помогите нам понять, насколько полезна информация на этой странице, помогла ли она решить возникшие у вас проблемы? Для ответа, нажмите на одну из трех кнопок:

0

Twitter Mail.Ru Facebook Вконтакте Я.ру ЖЖ
Постоянный адрес этого ёлпера:
Разместить в блоге:
Разместить на форуме:
помогло 17 · не помогло 8 · просмотров 8712
29 мая 2011 → 17:06 · @Алексей Немиро
@dmitry.kaizer · 02 июня 2011 → 20:37
Неделю мучался, а вот оно как оказывается!
Спасибо большое!
@dmitry.kaizer · 02 июня 2011 → 20:43
И отдельное спасибо за батник! У меня 3 гига данных и несколько сотен файлов получилось!
@max_2006-88 · 07 февраля 2012 → 15:03
Пробывал сделать единым файлом. Не получилось его потом запустить. азмер слишком большой. Не хватило памяти. Попробовал разбить на мелкие файлы и запустить батником. Не получилось. Говорит недопустимое имя файла. Но из managment studio по одному скрипты успешно выполняются. Может быть их можно как-нибудь запустить все из под managment studio?
@Алексей Немиро · 08 февраля 2012 → 12:14
Если "недопустимое имя файла", то значит где-то ошибка. В идеале, желательно чтобы путь был максимально коротким, например: C:\SQL. Без пробелов и т.п. Еще можно попробовать путь заключить в кавычки.

Метод с батниками не всегда подходит, и в целом все это очень кривое решение, но другого нет. Я, если требуется перенести данные, обычно создаю в SQL Management файл с запросом, как показано в этом ёлпере, а затем программно выполняю его по частям (в C# или VB .NET).
@pgleb · 22 января 2014 → 18:26
1. при исполнении вылетел с ошибкой:
Msg 18456, Level 14, State 1, Server xxxSERVER, Line 1
Login failed for user 'xxxSERVER\xxx'.
Предполагаю, что это из-за SQL-идентификации
Как подписать батник под такой вариант?
2. Надо-ли (и если "да", то чем) порубить запрос на 20 гектар?
@Алексей Немиро · 23 января 2014 → 10:53
Полный список параметров SQLCMD можно найти по следующей ссылке:
http://technet.microsoft.com/ru-ru/library/ms162773.aspx

-U имя пользователя
-P пароль доступа

Но на локальном компьютере должно работать соединение под текущим пользователем Windows, если в настройках SQL Server включена проверка подлинности Windows.