powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перенос 7.0->2000 проблема с Collations
7 сообщений из 7, страница 1 из 1
Перенос 7.0->2000 проблема с Collations
    #32023989
SergD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот стала в полный рост проблема Collations при переносе БД из 7.0 под 2000й

После рестора из бэкапа 7.ки в 2000 у моей базы Collations такой SQL_Latin1_General_CP1251_CI_AS
у сервера такой Cyrillic_General_CI_AS естественно процедуры юзающие temp db т.е.
при создании временной таблицы у нее Collations Cyrillc_General_CI_AS как у сервера
и любое действие на сравнение вызывает ошибку: "Cannot resolve collation conflict for equal to operation."

Просто выполнение
use master
ALTER DATABASE МояБаза
COLLATE Cyrillic_General_CI_AS
привело к сменне текущего Collations базы, но проблема осталась старые таблицы судя по всему имеют старый Collations,
и ошибка остается.
Может кто сталкивался уже как проще это исправить очень не хочется ручками или скриптами все базы курочить,
можно конечно изменить Collations у temp db, если это возможно, т.е. на старый SQL_Latin1_General_CP1251_CI_AS, но это ущербный выход.

С уважением, Сергей.
...
Рейтинг: 0 / 0
Перенос 7.0->2000 проблема с Collations
    #32023993
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На прошлой неделе сделал тоже самое. И проблему пришлось решать туже. Пришел к выводу, что проблему надо решить раз и навсегда, базу от 7 версии заскриптовал, отдельно создание таблиц и хранимых, отдельно индексы и констрэйны.
Создал скриптами новую базу, перегнал данные от 7-ки и наложил индексы и констрэйны. На все ушло около часа. База под тысячу таблиц и полтысячи хранимых. Выставил уровень совместимости 70, а то все равно хранимые с 80 стали работать не так. Теперь все вроде бы устаканилось.
...
Рейтинг: 0 / 0
Перенос 7.0->2000 проблема с Collations
    #32023994
SergD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andrew,
А данные чем лил ?
Сергей.
...
Рейтинг: 0 / 0
Перенос 7.0->2000 проблема с Collations
    #32024040
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
использовал import and export data, т.е. dtswiz.exe
...
Рейтинг: 0 / 0
Перенос 7.0->2000 проблема с Collations
    #32024045
SergD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо видимо придется так мучиться, а у меня их баз, штук 7
А может кто юзал визард ихний по переносу баз с 7.0 ?
Как там с этой проблемой ?
Сам попробывать не могу т.к. там нужно чтобы SQL сервер был запущен от акаунта который может двигать файлы по сетке, а мне пока такой системщики не настроили

С уважением, Сергей.
...
Рейтинг: 0 / 0
Перенос 7.0->2000 проблема с Collations
    #32024165
SergD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Усе решил - только через одно место, решение не универсальное и оч. опасное но на всякий случай приведу - может кому и поможет, но здесь только идея каждому нужно подработать для себя

--первым делом нужно сменить collation у базы восстановленной с быкапа MS SQL.70
--на нужный
use master
ALTER DATABASE <БАЗА_НЕ_С_ТЕМ_COLLATE>
COLLATE Cyrillic_General_CI_AS

GO
--далее нужно разрешить изменения в системной области
--!!!ОЧЕНЬ ОСТОРОЖНО ЭТО ДЕЛАЙТЕ, ВВОБЩЕ, ЛУЧШЕ ИЗ EM ЭТО СДЕЛАТЬ
--В BOL How to set the allow updates option
EXEC sp_configure 'allow updates', '1'
RECONFIGURE WITH OVERRIDE
GO
--далее правим в syscolumns(collationid,language)
--Почемуто эти колонки не описаны у меня в BOL
--Значения подбирались эсперементальным способом
--создавалось то что нужно и бралось значение которое появлялось в collationid и
--language
use <БАЗА_НЕ_С_ТЕМ_COLLATE>
update syscolumns
set collationid=53269,
language=2097184
WHERE xtype in
(select xtype from systypes where not collation is null )
GO
--запрещаем модификацию системной области
--!!!ОЧЕНЬ ОСТОРОЖНО ЭТО ДЕЛАЙТЕ, ВВОБЩЕ, ЛУЧШЕ ИЗ EM ЭТО СДЕЛАТЬ
--В BOL How to set the allow updates option
EXEC sp_configure 'allow updates', '0'
RECONFIGURE WITH OVERRIDE
GO


Ну и дальше индексы перестроить там где есть поля символьные.
Не знаю что случится при таком методе с форинами по полям символьных типов, но у меня таких нет.

С уважением, Сергей.
...
Рейтинг: 0 / 0
Перенос 7.0->2000 проблема с Collations
    #32024481
am (a_mitin)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую!
Попробовал перенести базы со своей семерки на тестовый 2000 - та же проблема с Collations.
При установке нового instance SQL Server 2000 он по-умолчанию предлагает (в соответсвии с регион. установками) Cyrillic_General_CI_AS, что полностью соотв. рекомендациям MS по установке новой системы. Однако данные сервера SQL 7.0 (как и у Сергея) соответствуют SQL_Latin1_General_CP1251_CI_AS - что соответсвует SortOrder ID = 106 : "Dictionary order, case-insensitive, for use with the 1251 (Cyrillic) character set.", что в общем то и нужно.
Опять же и MS рекомендует:
An upgrade of SQL Server 7.0 to SQL Server 2000 keeps the previous SQL collation settings; no collation choice is required.
Вопрос:
А нужно ли вообще преобразовывать к Cyrillic_General_CI_AS? Ведь судя по всему SQL_Latin1_General_CP1251_CI_AS - это то что нужно, и похоже вообще это одно и то же (конечно могу ошибаться, Cyrillic_General_CI_AS вообще не встречается в BooksOnLine).

Вопрос2:
А есть ли какие ещё грабли при переходе? На первый взгляд всё проходит гладко, но может уже натыкался на какие-то нюансы?

И спасибо Сергею за этот топик! Он мне помог при переходе, заставил обратить внимание на данную проблему.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перенос 7.0->2000 проблема с Collations
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]