Понижение версии SQL Server 2008 до SQL Server 2005 - PullRequest
6 голосов
/ 11 мая 2009

Есть ли проблемы с резервным копированием базы данных из SQL Server 2008 и последующим импортом в SQL Server 2005? Я обновился до SQL Server 2008, но 2008 год кажется слишком проблематичным, поэтому теперь я хочу понизить его. Есть ли в этом проблемы?

Ответы [ 4 ]

8 голосов
/ 11 мая 2009

Ну, вы не сможете восстановить резервную копию 2008 на сервер SQL 2005.

Самый простой способ сделать это - использовать мастер «Создание сценариев SQL Server» для создания сценария (включая схему и данные), который можно запустить в SQL 2005 для создания базы данных. Смотри http://www.devx.com/dbzone/Article/40531

Но вернемся к первоначальной проблеме: какие проблемы возникают у вас с SQL 2008?

0 голосов
/ 14 ноября 2011

Невозможно восстановить резервную копию базы данных SQL Server, взятую из SQL Server 2008, и восстановить ее на SQL Server 2005, так как это не поддерживается Microsoft. Чтобы узнать больше, почему вы не можете восстановить базу данных из более высокой версии в более низкую версию, прочитайте следующую статью . Если вы хотите понизить версию базы данных, то можете использовать SQL Server Integration Services. Пример понижения базы данных SQL Server 2008 до SQL Server 2005 приведен в следующей статье .

0 голосов
/ 12 мая 2009

Я бы согласился, в чем проблема? Вы не можете запустить базу данных в режиме совместимости 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

Затем используйте мастер импорта / экспорта для импорта данных в вашу базу данных; В моем опыте это намного быстрее, чем сценарий из сценария.

0 голосов
/ 11 мая 2009

Другой способ сделать это - подключиться к обоим серверам через проводник объектов и импортировать данные из одного в другой.

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

...