Вопрос

Есть ли проблемы с резервным копированием базы данных 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 приведен ниже. статья.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top