Вопрос: Как обновить SQL Server Express 2005 до 2008R2


Я использую EF 4.1 в visual studio 2010, и я бы хотел, чтобы мой сервер SQL db на сервере был 2008R2 (потому что я хочу использовать средство миграции из MS для EF в VS).

Инструмент : http://visualstudiogallery.msdn.microsoft.com/df3541c3-d833-4b65-b942-989e7ec74c87/

Проблема в том, что инструмент миграции жалуется, что версия db слишком старая (90). Поэтому я решил, что для 2008R2 она хочет, чтобы она составляла 100.

enter image description here

Я установил (как-то) SQL Server 2005, 2008, 2008r2 на машине БД. Почему он не создает базу данных 2008r2?

Я попытался изменить уровень совместимости самостоятельно, но его ограничился 90, 80 и 70 и не показывал 100.

Затем я установил sql-сервер 2012 на машине, надеясь, что он обновит dbs и позволит мне перейти на 100, но все равно нет.

Итак, как я могу преобразовать dbs ниже 100 и изменить ядро ​​сервера для использования 2008r2 или 2012?

enter image description here

МОЕ РЕШЕНИЕ:

Отсоедините все DBS от экземпляра «SqlExpress». И сохранить на рабочий стол. Удалите Sql Server 2005 - экземпляр «SqlExpress» из программ добавления / удаления. Переместите папки MSSQL.1 / MSSQL.2 на рабочий стол (если они содержат данные ur 2005), вам может потребоваться закрыть процессы sqlserver) Запустите 2008R2 Express setup, новую установку. Создайте экземпляр «SqlExpress». Укажите пароль sa. Запустите MSSMS и подключитесь к экземпляру SqlExpress. Переместите все dbs обратно в каталог данных и снова присоедините.


6
2018-04-19 11:15


Источник


Вы используете неправильный мастер преобразования. Прочтите сообщение об ошибке более тщательно; он говорит, что исходный SQL100 не может быть преобразован в целевой SQL-адрес90, Вы пытаетесь спуститься в версиях, а не вверх. Вот почему 100 не входят в список уровней совместимости; это не будущее совместимо, только назад. (И это не по теме.) - Ken White
Привет, Кен, я не думаю, что ты понял. Я сказал, что моя БД была в 2005 году, поэтому VS ожидал 2008 года, и это было не так, поэтому он сказал, что не может понизить рейтинг. Вот почему я спрашиваю, как я могу сделать свой DB 2008 также. Подводя итог, я пытаюсь перейти к версиям IN SQL MANAGEMENT STUDIO и не показывать их 100. WIZARD хочет, чтобы это был 2008 год, поэтому он терпит неудачу при преобразовании вниз. Надеюсь это имеет смысл,


Ответы:


Я бы определенно сделал некоторые чистки здесь, вместо обновления я бы удалить все вкусы SQL Server и установить необходимый вам движок, скажем, 2008R2. Возможно, вы назвали экземпляры с другой версией, чем ваш экземпляр SQLEXPRESS.

После установки вашего двигателя 2008R2 просто добавьте свою старую базу данных 2008 или 2005 г., и обновление произойдет автоматически. Однако, как предположил @ken White, имейте в виду, что как только ваша база данных будет работать с более современными версиями, вы не сможете вернуться со старыми версиями.


3
2018-04-19 14:16



Привет, есть ли место, которое я могу открыть, чтобы посмотреть, какую версию использует экземпляр SQLEXPRESS? И изменить его оттуда, чтобы использовать версию diff? Также, как только я обновляю один db до 2008 года, могу ли я установить совместимость другого с 2005 годом в студии управления, или он будет автоматически обновляться после того, как я присоединюсь, и не позволю мне установить более низкий уровень совместимости?
После обновления я считаю, что вы можете установить режим совместимости для предыдущей версии SQL Server; однако ваша база данных будет по-прежнему обновляться. Это означает, что вы не сможете подключить его с двигателем 2005 года. - Ulises
Привет Улисес, поэтому у меня установлен двигатель 2008R2, как мне получить экземпляр sqlexpress для использования этого движка? На данный момент его использование 2005 и я не могу найти вариант, чтобы изменить его. - sprocket12
@MuhammadA: SQLExpress - это именованный экземпляр. У вас может быть только один. Хотя у вас может быть несколько экземпляров SQL Server Express. На этом этапе вам нужно выяснить, в какой версии запущен именованный экземпляр SQLExpress (2005,2008,2008R2 или 2012). Вы можете сделать это, выполнив «select @@ version». В вашей ситуации, если это ничего, кроме 2008R2, удалите его, а затем установите 2008R2 - Ulises
Я сделал код, его работает 2005. Так что я не могу изменить текущий экземпляр SqlExpress, чтобы вместо этого указать на 2008R2? Потому что он уже установлен. Или мне нужно сначала удалить 2005, а затем переустановить 2008R2 над собой? Я спрашиваю об этом, потому что это производственный сервер, и он, вероятно, захочет перезапустить. - sprocket12