Понижение версии SQL Server 2008 до SQL Server 2005
-
21-08-2019 - |
Вопрос
Есть ли проблемы с резервным копированием базы данных SQL Server 2008 и последующим ее импортом в SQL Server 2005?Я обновился до SQL Server 2008, но 2008 кажется слишком проблематичным, поэтому теперь я хочу перейти на более раннюю версию.Есть ли какие-либо проблемы при этом?
Решение
Что ж, вы не сможете восстановить резервную копию 2008 года на сервере SQL 2005.
Самый простой способ сделать это — использовать мастер «Создать сценарии SQL Server», чтобы создать сценарий (включая схему и данные), который можно запустить в SQL 2005 для создания базы данных.Видеть http://www.devx.com/dbzone/Article/40531
Но вернемся к исходной проблеме:какие проблемы у вас с SQL 2008?
Другие советы
Другой способ сделать это — подключиться к обоим серверам через проводник объектов и импортировать данные с одного на другой.
Однако при этом некоторые вещи передаются неправильно.Например, мне пришлось вручную сбросить настройки первичного и внешнего ключа, а также настройку автоматического приращения.Однако это была небольшая цена за то, чтобы заставить все данные работать.
Я бы согласился, в чем проблема?не можете ли вы запустить базу данных в режиме совместимости с SQL 2005, если дело в приложении?Если вам необходимо перейти на 2005 год, вы не сможете просто восстановить базу данных с 08 по 05.
Если у вас есть база данных размером более 50 МБ или около того, я бы написал сценарий вашей схемы базы данных с помощью мастера создания сценариев, записал все ваши ключи, индексы, триггеры, параметры сортировки и любые полнотекстовые индексы, которые у вас есть, без данных.Просто не забудьте проверить сценарий на наличие версии sql 2005.Запустите этот сценарий, чтобы создать новую базу данных на вашем сервере sql 2005.
Если в ваших таблицах есть триггеры, вам нужно отключить их все перед импортом данных.Эти сценарии сделают это за вас.Они сделают это за вас
-- Disable Triggers
While @i <= @MaxI
Begin
Select @dsql = 'DISABLE Trigger ' + TriggerName + ' ON ' + TableName
From @DisableTriggers
Where MyRowCount = @i
Exec sp_executesql @dsql
Select @i = @i + 1
End
-- Enable Triggers
While @i <= @MaxI
Begin
Select @dsql = 'Enable Trigger ' + TriggerName + ' ON ' + TableName
From @DisableTriggers
Where MyRowCount = @i
Exec sp_executesql @dsql
Select @i = @i + 1
End
Затем используйте мастер импорта/экспорта, чтобы импортировать данные в вашу базу данных;По моему опыту, это намного быстрее, чем сценарий из сценария.
Вы не можете восстановить резервную копию базы данных SQL Server, сделанную из SQL Server 2008, и восстановить ее на SQL Server 2005, поскольку это не поддерживается Microsoft.Чтобы узнать больше, почему вы не можете восстановить базу данных из более высокой версии в более низкую, прочитайте следующее. статья.Если вы хотите понизить версию базы данных, используйте службы интеграции SQL Server.Пример понижения версии базы данных SQL Server 2008 до SQL Server 2005 приведен ниже. статья.