2009-10-23 3 views
0

Мне нужно преобразовать базу данных SQL Server 2005, отличную от юникода, в базу данных на основе юникода. У меня есть сотни хранимых процедур и, конечно, данные хранятся в varchar. Я знаю, что мне нужно изменить все типы данных на эквивалент unicode (varchar на nvarchar), но разве мне не нужно изменять способ записи хранимых процедур или они будут продолжать работать по-прежнему? Я пытаюсь выяснить, что необходимо для перехода от не-Юникода к Юникоду для большой базы данных со многими хранимыми процессами.Преобразование данных, не связанных с Unicode SQL Server и хранимых процедур, в Unicode

ответ

3

Да, вам необходимо обновить свои данные и хранимые процедуры, но важно помнить, что вам нужно только изменить ваших столбцов в UNICODE. Для всего, что является «внутренним», вам не нужно оплачивать стоимость UNICODE.

Существует много работы для этого изменения, но не все слепо. Раньше я был в конце этого изменения, и это болезненно. (Использование nvarchar (1) для хранения «y» и «n» является глупым.)

+0

Обратите внимание, что в SQL Server 2008 R2, если вы используете сжатие данных, вы платите только стоимость Unicode для фактических данных Unicode. Алгоритм сжатия очень умный - он не тратит два байта на символы ASCII и обеспечивает значительное сжатие даже в данных Unicode, сохраняя смещения вместо фактических 2-байтных символов. Добавьте, что поверх словаря и другого сжатия вы уже получаете сжатие данных. Конечно, вы платите штраф за сжатие/декомпрессию, поэтому всегда проверяйте. Некоторые блоги (первые три хита): http://is.gd/4yleO –

+0

Неудовлетворенность для меня заключается в том, что сжатие UNICODE - это только Enterprise. Это то, за чем стоит SQL Server, и теперь они догоняют хорошее решение, но ограничивают его Enterprise (чего я не использую). –

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