Имя: Пароль:
1C
 
Поменять 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
https://www.mssqltips.com/sqlservertip/3519/changing-sql-server-collation-after-installation/

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) да ты приколист
Независимо от того, куда вы едете — это в гору и против ветра!