Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Seed88
Member

Откуда:
Сообщений: 38
Здравствуйте

Не проводится документ в 1с7, при попытке провести пишет: sql state 42000 native 446 odbc sql server Cannot resolve collation conflict for equal to operation.

Поиски в интернете привели к тому что нужно collation указать в новой созданной базе, и за ново ее загрузить.
У меня в SQL 2000 в базе tempdb по умолчанию Cyrillic_General_CI_AS а базы где не проводятся документы в SQL_Latin1_General_CP1251_CI_AS.
Я создаю пустую базу с collation Cyrillic_General_CI_AS и заливаю туда нужную мне, но collation снова меняется на Cyrillic_General_CI_AS.
Можно сделать так чтоб collation после загрузки не менялся?

Хуже то что разные базы перенесли на один SQL 2000 с разных 2000х, где кодировки отличаются. Получается одной базе нужна одна кодировка а другой другая.

Прочел про rebuildm.exe, якобы им можно поменять кодировку выбранной базы. Можно подробнее узнать как это сделать?
Я запустил утилиту, просит указать путь (это путь к чему, к месту пасположения базы?).

Вообще реально сделать так чтоб одни базы в одной кодировке работали а другие в другой? Какой самый простой способ?
29 мар 16, 14:06    [18991215]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Glory
Member

Откуда:
Сообщений: 104751
Seed88
Я создаю пустую базу с collation Cyrillic_General_CI_AS и заливаю туда нужную мне, но collation снова меняется на Cyrillic_General_CI_AS.
Можно сделать так чтоб collation после загрузки не менялся?

Ну так у вас и не меняется

Seed88
Хуже то что разные базы перенесли на один SQL 2000 с разных 2000х, где кодировки отличаются. Получается одной базе нужна одна кодировка а другой другая.

collate - это не кодировка

Seed88
Прочел про rebuildm.exe, якобы им можно поменять кодировку выбранной базы. Можно подробнее узнать как это сделать?
Я запустил утилиту, просит указать путь (это путь к чему, к месту пасположения базы?).

Вы неправильно прочитали
https://technet.microsoft.com/en-us/library/aa197950(v=sql.80).aspx

Seed88
Вообще реально сделать так чтоб одни базы в одной кодировке работали а другие в другой? Какой самый простой способ?

писать запросы с учетом "одни базы в одной кодировке работали а другие в другой" а системные базы - вообще в третьей
29 мар 16, 14:14    [18991272]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Seed88
Member

Откуда:
Сообщений: 38
Glory
Seed88
Я создаю пустую базу с collation Cyrillic_General_CI_AS и заливаю туда нужную мне, но collation снова меняется на Cyrillic_General_CI_AS.
Можно сделать так чтоб collation после загрузки не менялся?

Ну так у вас и не меняется

Seed88
Хуже то что разные базы перенесли на один SQL 2000 с разных 2000х, где кодировки отличаются. Получается одной базе нужна одна кодировка а другой другая.

collate - это не кодировка

Seed88
Прочел про rebuildm.exe, якобы им можно поменять кодировку выбранной базы. Можно подробнее узнать как это сделать?
Я запустил утилиту, просит указать путь (это путь к чему, к месту пасположения базы?).

Вы неправильно прочитали
https://technet.microsoft.com/en-us/library/aa197950(v=sql.80).aspx

Seed88
Вообще реально сделать так чтоб одни базы в одной кодировке работали а другие в другой? Какой самый простой способ?

писать запросы с учетом "одни б
азы в одной кодировке работали а другие в другой" а системные базы - вообще в третьей


Опечатался, после загрузки в место Cyrillic_General_CI_AS становится SQL_Latin1_General_CP1251_CI_AS
29 мар 16, 14:41    [18991445]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Seed88
Member

Откуда:
Сообщений: 38
В итоге есть 2 базы работающие на Cyrillic_General_CI_AS и 2 на SQL_Latin1_General_CP1251_CI_AS
Я в rebuildm.exe указываю путь в C:\Program Files\MSSQL\DATA в параметрах выбираю Cyrillic_General_CI_AS и тогда для всех баз по умолчанию будет Cyrillic_General_CI_AS ?
29 мар 16, 14:48    [18991488]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Glory
Member

Откуда:
Сообщений: 104751
Seed88
Опечатался, после загрузки в место Cyrillic_General_CI_AS становится SQL_Latin1_General_CP1251_CI_AS

Collate базы - это Collate по-умолчанию
Т.е. только при создании новых объектов и только если в этих командах нет явного указания Collate

Seed88
Я в rebuildm.exe указываю путь в C:\Program Files\MSSQL\DATA в параметрах выбираю Cyrillic_General_CI_AS и тогда для всех баз по умолчанию будет Cyrillic_General_CI_AS ?

Вы ссылку открывали ?
29 мар 16, 14:51    [18991517]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Seed88
Member

Откуда:
Сообщений: 38
Glory
Seed88
Опечатался, после загрузки в место Cyrillic_General_CI_AS становится SQL_Latin1_General_CP1251_CI_AS

Collate базы - это Collate по-умолчанию
Т.е. только при создании новых объектов и только если в этих командах нет явного указания Collate

Seed88
Я в rebuildm.exe указываю путь в C:\Program Files\MSSQL\DATA в параметрах выбираю Cyrillic_General_CI_AS и тогда для всех баз по умолчанию будет Cyrillic_General_CI_AS ?

Вы ссылку открывали ?


Да, читал. Обьясните пожалуйста доступным языком, что именно тогда указывать в этом пути, и правильно ли я мыслю что указанная кодировка в настройках примениться ко всем базам? Это операция безопасна вообще?
Можно ли новую созданную базу остатся в прежней кодировке после того как в нее восстановят данных?
29 мар 16, 15:04    [18991624]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Glory
Member

Откуда:
Сообщений: 104751
Seed88
Да, читал.Обьясните пожалуйста доступным языком, что именно тогда указывать в этом пути, и правильно ли я мыслю что указанная кодировка в настройках примениться ко всем базам? Это операция безопасна вообще?

И по-вашему rebuild master database означает изменить collate у всех пользовательских баз ?

Seed88
Можно ли новую созданную базу остатся в прежней кодировке после того как в нее восстановят данных?

"восстановят данные" - это что за команда/команды
29 мар 16, 15:07    [18991647]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Seed88
Member

Откуда:
Сообщений: 38
Glory
Seed88
Да, читал.Обьясните пожалуйста доступным языком, что именно тогда указывать в этом пути, и правильно ли я мыслю что указанная кодировка в настройках примениться ко всем базам? Это операция безопасна вообще?

И по-вашему rebuild master database означает изменить collate у всех пользовательских баз ?

Seed88
Можно ли новую созданную базу остатся в прежней кодировке после того как в нее восстановят данных?

"восстановят данные" - это что за команда/команды


Во пустую созданную базу, через действия > Database restor

Так что с базами в которых нужно кодировку оставить? Это возможно, если да то как?
29 мар 16, 15:14    [18991691]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31980
Seed88
Во пустую созданную базу, через действия > Database restor
Database restor волсстанавливает базу в том коллейшене, в котором она была забакаплена.
Seed88
Так что с базами в которых нужно кодировку оставить? Это возможно, если да то как?
Что оставить? В базах коллейшен не меняется сам по себе.
И коллейшен - это не кодировка. Это сортировка и сравнение строк. Вам же уже сказали.
29 мар 16, 15:19    [18991713]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Glory
Member

Откуда:
Сообщений: 104751
Seed88
Во пустую созданную базу, через действия > Database restor

команда restore восстанавливает из бэкапа базу в том виде, в каком был сделан бэкап
Существующая база перезаписывается. Ведь вы же сами указываете эту опцию

Seed88
Так что с базами в которых нужно кодировку оставить? Это возможно, если да то как?

Что "как" ?
У вас три варианта
- либо вы меняете collate master database на ту, что использует ваша база. Для этого есть rebuildm
- либо вы меняете collate всех объектов вашей базы на ту, что использует master. Вручную.
- либо вы переписываете все запросы, где используются сравнения с разными collate. Вручную.

Это достаточно доступно для вас ?
29 мар 16, 15:20    [18991720]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Seed88
Member

Откуда:
Сообщений: 38
Glory
Seed88
Во пустую созданную базу, через действия > Database restor

команда restore восстанавливает из бэкапа базу в том виде, в каком был сделан бэкап
Существующая база перезаписывается. Ведь вы же сами указываете эту опцию

Seed88
Так что с базами в которых нужно кодировку оставить? Это возможно, если да то как?

Что "как" ?
У вас три варианта
- либо вы меняете collate master database на ту, что использует ваша база. Для этого есть rebuildm
- либо вы меняете collate всех объектов вашей базы на ту, что использует master. Вручную.
- либо вы переписываете все запросы, где используются сравнения с разными collate. Вручную.

Это достаточно доступно для вас ?



Я так понял мне нужен 2й вариант (менять collate всех объектов базы на ту, что использует master. Вручную). Так как те базы что работают с Cyrillic_General_CI_AS такой проблемы не имею, а значить master трогать не нужно.
Я не специалист по базам данных так что строго не судите, но как поменять collate в базе на ту что использует master?
29 мар 16, 15:57    [18991922]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Glory
Member

Откуда:
Сообщений: 104751
Seed88
Я не специалист по базам данных так что строго не судите, но как поменять collate в базе на ту что использует master?

"я не специалист" означает "я не умею читать ответы" ?
29 мар 16, 15:59    [18991931]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Seed88
Member

Откуда:
Сообщений: 38
Пробовал то что ниже, не помогло

ALTER DATABASE DBNAME
COLLATE Cyrillic_General_CI_AS
29 мар 16, 16:00    [18991946]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Glory
Member

Откуда:
Сообщений: 104751
Seed88
Пробовал то что ниже, не помогло

ALTER DATABASE DBNAME
COLLATE Cyrillic_General_CI_AS

А кто вам сказал, что это должно помочь ?
29 мар 16, 16:07    [18991987]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Seed88
Member

Откуда:
Сообщений: 38
В интернете ищу решение.
Можно с Вами проконсультироватся подробнее в переписке по скайпу к примеру, нужна помощь самому опыта не хватит.
29 мар 16, 16:11    [18992026]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Glory
Member

Откуда:
Сообщений: 104751
Seed88
нужна помощь самому опыта не хватит.

Если вы ищите решение, где надо нажать одну кнопочку, то это rebuildm
Во всех остальных решениях нужно будет писать код.
Вы считаете, что сможете его написать после консультаций по скайпу ?
29 мар 16, 16:16    [18992053]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Seed88
Member

Откуда:
Сообщений: 38
Указываю папку с содержащую базу с корой я хочу это проделать, пишет следующее The source files could not be found. Please specify a valid patch.

Нужно папку с установкой MSSQL указывать? В описании что выше не было уточнения
29 мар 16, 16:22    [18992088]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Glory
Member

Откуда:
Сообщений: 104751
Seed88
Нужно папку с установкой MSSQL указывать?В описании что выше не было уточнения

Вы не читаете ни ответов, ни ссылок.
Вам лучше нанять специалиста.
29 мар 16, 16:24    [18992098]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
Seed88
Member

Откуда:
Сообщений: 38
Glory
Seed88
Нужно папку с установкой MSSQL указывать?В описании что выше не было уточнения

Вы не читаете ни ответов, ни ссылок.
Вам лучше нанять специалиста.


Понял, файлы инсталляции требует.
Так выбранный collate применяется ко всем базам, или там будет выбор к какой именно?
29 мар 16, 16:33    [18992177]     Ответить | Цитировать Сообщить модератору
 Re: Не проводится документ в 1c7, ошибка SQL 2000 state 42000 native 446 odbc sql server  [new]
o-o
Guest
Seed88
Понял, файлы инсталляции требует.
Так выбранный collate применяется ко всем базам, или там будет выбор к какой именно?

Вы сейчас загубите базу мастер.
Утилита ребилдит системные базы, потому что сменить непустой базе коллэйшейн означает перелить все данные, и каждому строковому неюникодному полю приписать новый collate, и инсталляция сервера не заботится о пользовательских базах, она тупо пересоздаст вам мастер с новым выбранным вами коллэйшеном.
Т.е. в результате вы получите голый сервер, мастер которого ничего не будет знать о ваших пользовптельских базах, логинах, линкованных серверах и обо всем том, что еще хранилось в прежней базе мастер.
Вы не решите проблему коллэйшенов, тк у вас зоопарк из баз с различными коллэйшенами, а мастер один на всех и может иметь один конкретныц коллэйшен, а не 2 одновременно.

Или свои базы поделите на 2 группы и те, что дают конфликт коллэйшенов, перенесите на сервер с соответствующим коллэйшеном, или руками переливайте данные, указывая каждый раз collate <нужный коллэйшен> каждому столбцу в переливающем запросе.
Вариант с переписыванием запросов вам не подходит, тк запросы вам генерит ваше 1с
29 мар 16, 19:56    [18993326]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить