Экспорт всех данных ( в том числе логины, связанные серверы, рабочие места SQL Agent, настройки DB Mail, и т.д.), и восстановление данных уровня экземпляра, а также перегрузка всех пользовательских данных, является много работы. И даже после всего этого, по-прежнему нет гарантии, что вы можете обновить параметры сортировки базы данных по умолчанию, ALTER DATABASEпоскольку существует несколько условий, которые не позволяют завершить операцию (см. Раздел «Изменение параметров сортировки базы данных» в ALTER DATABASEдокументации ). ,
Существует, однако, недокументированный метод, который намного проще. Основным недостатком является то, что он не поддерживается. Это не означает, что что-то пойдет не так, просто если что-то случится, Microsoft не поможет исправить это (потому что они никогда не гарантировали, что это будет работать).
Метод, о котором я говорю, работает sqlservr.exeс -q {new_collation_name}коммутатором. Это немного больше, чем это, но это основная идея. Этот метод просто обновляет системные метаданные, которые имеют преимущества и последствия, основными из которых являются:
ВЫГОДЫ
- достаточно быстро
- обойти большинство ограничений, которые мешают
ALTER DATABASEработать
- вероятно, гораздо более точный, чем любой сценарий, который люди придумали за эти годы, чтобы отбрасывать и воссоздавать объекты
НЕДОСТАТКИ
- не поддерживается, если что-то идет не так
VARCHARданные могут измениться, ЕСЛИ кодовая страница отличается между старым и новым параметрами сортировки, и символы со значениями 128 - 255 (0x80 - 0xFF) существуют, и эти символы не существуют как один и тот же символ с тем же значением в новом коде стр. Таким образом, существует вероятность потери данных, и ваши данные должны быть в первую очередь исследованы, чтобы убедиться, что это условие не существует. Но это также означает, что существует множество случаев, когда только символы имеют значения от 0 до 127, которые не представляют опасности, даже если кодовая страница изменяется.
- Пользовательские типы таблиц (UDTT) пропускаются и должны обновляться вручную.
Подробное описание того, что sqlservr.exe -qметод делает и чего не делает (включая подробности о том, как сортировки работают на разных уровнях и возможные проблемы, на которые следует обратить внимание), смотрите в моем посте:
Изменение параметров сортировки экземпляра, баз данных и всех столбцов во всех пользовательских базах данных: что может быть неправильным?
Чтобы изменить только экземпляр ( в том числе баз данных системы: master, model, msdb, и tempdb) и один или несколько баз данных (но не все базы данных), просто отсоединение базы данных (ы) , которые вы хотите исключить из этой операции, а затем повторно приложить их как только обновление сортировки завершится.