2014-01-05 4 views
0

У меня есть два файла базы данных с именем .mdf и .ldf, которые созданы в SQL Server 2012, а теперь на моем компьютере установлены Visual Studio 2010 и SQL Server 2008 Express ,Как подключить базу данных в SQL Server 2008, которая была создана в SQL Server 2012

Когда я пытаюсь прикрепить эти файлы базы данных к SQL Server 2008, он дает мне ошибку.

The database 'C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMS_DB.MDF' cannot be opened because it is version 706. This server supports version 655 and earlier. A downgrade path is not supported. Could not open new database 'C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMS_DB.MDF'. CREATE DATABASE is aborted.
An attempt to attach an auto-named database for file C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\CMD_DB.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

При открытии базы данных в SSMS 2008, то ошибка:

Attach database failed for Server 'MATRIX-PC\SQLEXPRESS'. (Microsoft.SqlServer.Smo)
Additional information:
An exception occured while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
The database 'C:\USERS\RAJ\DESKTOP\COLLEGE MANAGEMENT SYSTEM(.NET 4.5)\ COLLEGE MANAGEMENT SYSTEM\BIN\DEBUG\CMD_DB.MDF' cannot be opened because it is version 706.
This server supports version 655 and earlier. A downgrade path is not supported.
Could not open new database 'C:\USERS\RAJ\DESKTOP\COLLEGE MANAGEMENT SYSTEM(.NET 4.5)\COLLEGE MANAGEMENT SYSTEM\BIN\DEBUG\CMD_DB.MDF'. CREATE DATABASE is aborted.
(Microsoft SQL Server, Error: 948)

+0

Вы ** НЕ МОЖЕТЕ ** сделать это - вы ** НЕ МОЖЕТЕ ** подключать/отсоединять/восстановить с ** новой ** версии SQL Server до ** старой ** версии. Просто ** не может быть сделано **. –

+0

Действительно, нет способа решить эту проблему. Если какой-нибудь путь мне поможет. – argciv

+0

Решение состоит в использовании ** той же версии ** SQL Server на всех ваших платформах; почему вы просто не загружаете и не устанавливаете SQL Server ** 2012 ** Express на свой локальный ПК? –

ответ

0

Нет, вы можете двигаться только вперед.

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

Я лично столкнулся с этой проблемой один раз раньше, и я вручную создал сценарий T-SQL с помощью мастера сценариев и генератора данных в SQL Server 2012 и перестроил свою базу данных в SQL Server 2008R2. Если у вас есть много разных баз данных, которые вы хотите адресовать, вы можете использовать SSIS для для автоматизации генерации сценария.

+0

где видео? – argciv

0

Как уже было отмечено, если вы хотите получить доступ к дате 2012 года с 2008 года, вам придется перенести базу данных на 2008 год. Это будет возможно только в том случае, если вы не использовали функции, специфичные для 2012 года в db. Если вы все еще хотите выполнить миграцию, вы должны сначала попробовать и определить их там, где они происходят, и исправить их в первую очередь.

Как уже отмечалось выше, один из вариантов - генерировать сценарии T-SQL и использовать их для восстановления db в 2008 году. Однако для большого db это может потребовать много времени и тяжелой работы, чтобы на самом деле работать.

Лучшим вариантом, чем использование мастера сценариев SSMS, является использование аналогичного инструмента, доступного в Codeplex, называемом мастером миграции базы данных SQL - http://sqlazuremw.codeplex.com/releases/view/32334. Вы хотите, чтобы последняя версия v4.x работала с SQL Server 2012.

Средство изначально предназначено для миграции баз данных между SQL Server и Azure. Однако этот инструмент работает так же хорошо, как между SQL Server 2012 и SQL Server 2008. Трюк заключается в том, чтобы в качестве дополнительных опций вместо SQL Server вместо SQL Server был установлен SQL Server.

Причина, по которой это лучший вариант, чем мастер сценариев SSMS, заключается в том, что он использует BCP для передачи данных, а не TSQL, и поэтому намного эффективнее. Я перенесла базу данных 7 ГБ примерно через 2 часа с этим, когда большую часть времени проводил чай, пока машина работала. Важно отметить, что все это просто работало без каких-либо требований для меня, чтобы начать редактирование файлов, чтобы исправить проблемы, такие как слишком много команд, тайм-ауты и т. Д.

Смежные вопросы