|
Поменять Collation у существующей базы SQL для 1С |
☑ |
0
val245
11.03.20
✎
08:33
|
Здравствуйте
Такая проблема. У MS SQL serever установлен Collation как SQL_Latin1_General_CP1_CI_AS. Создаю базу средствами SQL устанавливается Cyrillic_General_CI_AS. При загрузке dt в базу устанавливается Latin1_General_CI_AS. Остановил агент сервер 1С, при попмщи команды ALTER DATABASE DBNAME COLLATE Cyrillic_General_CI_AS поменял свойство базы, но при запуске базы снова выходит ошибка, и свойство опять меняется на Latin1_General_CI_AS. Как решить проблему? при том у остальных баз значение Collation стоит как Cyrillic_General_CI_AS.
|
|
1
Провинциальный 1сник
11.03.20
✎
08:37
|
Коллейшен сервера должен совпадать с коллейшеном базы 1с. Иначе возможны глюки. Переустанови mssql правильно и подключай базы.
|
|
2
val245
11.03.20
✎
09:55
|
у других баз на сервере установлен Cyrillic_General_CI_AS, значит это возможно и без переустанвки ms sql
|
|
3
Ns33
11.03.20
✎
09:57
|
1. stop services
2. sqlservr -m -T4022 -T3659 -s"MSSQLSERVER" -q"Cyrillic_General_CI_AS"
|
|
4
fisher
11.03.20
✎
10:09
|
С коллэйшнами в сиквеле многоступенчатая система умолчаний. У сервера есть, у базы есть, у таблицы есть, даже у колонки в таблице есть. И только вот этот последний имеет смысл. Ибо чего в колонке стоит - так данные и будут лежать и обрабатываться. Остальное - всего лишь умолчания. Т.е. база будет создана по дефолту с коллэйшном сервера. Таблица будет создана по дефолту с коллэйшном базы. Строковая колонка в таблице будет создана по дефолту с коллэйшеном таблицы. Проблемы в 1С начинаются, когда коллэйшены в tempdb отличаются от коллэйшнов в БД 1С. А системные таблицы создаются по дефолту с коллэйшнами сервера.
Отсюда следует, что простая смена коллэйшна сервера или базы данных ничего не дает. Данные как лежали в других коллэйшенах, так лежать и останутся.
Для смены коллэйшенов системных таблиц при смене коллэйшенов сервера есть руководства - погугли. Для базы 1С проще всего просто перезагрузить dt, чтобы все таблицы/колонки создались в нужном коллэйшне.
|
|
5
fisher
11.03.20
✎
10:17
|
Вообще мне непонятно, как работают остальные базы с Cyrillic_General_CI_AS, в то время как у сервера - SQL_Latin1_General_CP1_CI_AS. А глянь, какой у tempdb стоит.
|
|
6
val245
11.03.20
✎
10:20
|
там стоит SQL_Latin1_General_CP1_CI_AS
|
|
7
fisher
11.03.20
✎
10:23
|
(6) Тогда мне непонятно, как работает. Может, в новых сиквелах какие-то совместимости учитываются... Если хочешь поднять новую базу по аналогии с остальными, попробуй создать новую ПУСТУЮ базу, поменять у нее коллэйшн на Cyrillic_General_CI_AS и загрузить туда dt.
|
|
8
cons24
11.03.20
✎
10:40
|
(0) никак, страдай
|
|
9
val245
11.03.20
✎
11:18
|
(7) полпробую
(8) уже имеютсяч базы с Cyrillic_General_CI_AS на этой же машине. нормально раболтают. Значит возможно
|
|
10
mikecool
11.03.20
✎
11:22
|
(1) да ты приколист
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший