|
Поменять 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) да ты приколист
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |