Назад | Перейти на главную страницу

Полностью обновить базу данных SQL

У нас есть сервер SQL Server 2000, который раньше работал на SQL Server 7, в результате чего сортировка по умолчанию не такая, как кажется, установленная по умолчанию позже для SQL 2000 и выше (это SQL_Latin1_General_CP1_CI_AS, а не Latin1_General_CI_AS).

В любом случае, сейчас мы планируем наконец-то перейти на SQL Server 2008. Хотя советник по обновлению не показывает никаких проблем, кроме одной процедуры обслуживания, относящейся к некоторым устаревшим системным таблицам, мне было интересно, как выполнить `` полное '' обновление БД, а не просто оставить базу данных в режиме совместимости, что, похоже, произойдет, если мы либо выполните обновление на месте, либо восстановите / присоедините базу данных SQL2000 к экземпляру SQL2008.

Так что у меня есть разные вопросы:

  1. Не потеряем ли мы какую-либо функциональность, оставив БД в режиме совместимости на 2000 год?
  2. Если мы изменим режим совместимости на 2008, что может сломаться? Нужно ли будет изменить какие-то другие параметры, чтобы полностью использовать базу данных SQL 2008?
  3. Есть ли способ заставить обновление игнорировать существующие ссылки сопоставления и использовать сервер по умолчанию во всем?
  4. Или лучше заново создать сценарий базы данных с нуля и затем импортировать данные?

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

  1. вы потеряете возможность запускать новые команды, но не потеряете никаких функций, если не обновите приложение с помощью базы данных (которая прямо сейчас не может использовать функции 2008)

2. См. Книги в Интернете о Изменения уровня совместимости. Обратите внимание, что это изменения интерпретации языка, поэтому вы по-прежнему получаете улучшения в механизме запросов и т. Д.

3. Я не знаю об этом. Вы можете изменить его, изменив сортировку базы данных. Вы должны увидеть небольшую разницу, если сортировка SQL_Latin1_General_CP1_CI_AS или Latin1_General_CI_AS, но у обоих есть случаи, когда они быстрее или медленнее, чем другие.

Latin1_General_CI_AS : - Latin1-General, без учета регистра, без учета диакритических знаков, без учета канатического типа, без учета ширины

SQL_Latin1_General_CP1_CI_AS: - Latin1-General, без учета регистра, с учетом диакритических знаков, без учета канатического типа, без учета ширины для данных Unicode, порядок сортировки SQL Server 52 на кодовой странице 1252 для данных, отличных от Unicode

Вы можете получить больше идей из fn_helpcollations.

4. вы можете это сделать, но по умолчанию уровень совместимости вашей базы данных будет равен 100, что может не работать должным образом с вашим устаревшим приложением. Лучше всего посмотреть, какую последнюю версию SQL-сервера поддерживает приложение, и установить этот уровень совместимости.

  1. Да, вы потеряете все вещи 2005/8, если оставите БД в режиме совместимости с 2000
  2. В электронной документации есть раздел, в котором рассказывается о функциях, поддержка которых прекращена. Посмотри на это.
  3. Насколько я знаю, нет. Конечно, вы можете выполнить чистую установку 2008 года и перенести БД, но это должно быть в именованном экземпляре.
  4. Голосую за эту идею. Тогда у вас есть план полного отката назад.