Вход | Регистрация
 

Поменять Collation у существующей базы SQL для 1С

Поменять Collation  у существующей базы SQL для 1С
Я
   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 правильно и подключай базы.
   val245
 
2 - 11.03.20 - 09:55
у других баз на сервере установлен Cyrillic_General_CI_AS, значит это возможно и без переустанвки ms sql
   Ns33
 
3 - 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"
   fisher
 
4 - 11.03.20 - 10:09
С коллэйшнами в сиквеле многоступенчатая система умолчаний. У сервера есть, у базы есть, у таблицы есть, даже у колонки в таблице есть. И только вот этот последний имеет смысл. Ибо чего в колонке стоит - так данные и будут лежать и обрабатываться. Остальное - всего лишь умолчания. Т.е. база будет создана по дефолту с коллэйшном сервера. Таблица будет создана по дефолту с коллэйшном базы. Строковая колонка в таблице будет создана по дефолту с коллэйшеном таблицы. Проблемы в 1С начинаются, когда коллэйшены в tempdb отличаются от коллэйшнов в БД 1С. А системные таблицы создаются по дефолту с коллэйшнами сервера.
Отсюда следует, что простая смена коллэйшна сервера или базы данных ничего не дает. Данные как лежали в других коллэйшенах, так лежать и останутся.
Для смены коллэйшенов системных таблиц при смене коллэйшенов сервера есть руководства - погугли. Для базы 1С проще всего просто перезагрузить dt, чтобы все таблицы/колонки создались в нужном коллэйшне.
   fisher
 
5 - 11.03.20 - 10:17
Вообще мне непонятно, как работают остальные базы с Cyrillic_General_CI_AS, в то время как у сервера - SQL_Latin1_General_CP1_CI_AS. А глянь, какой у tempdb стоит.
   val245
 
6 - 11.03.20 - 10:20
там стоит SQL_Latin1_General_CP1_CI_AS
   fisher
 
7 - 11.03.20 - 10:23
(6) Тогда мне непонятно, как работает. Может, в новых сиквелах какие-то совместимости учитываются... Если хочешь поднять новую базу по аналогии с остальными, попробуй создать новую ПУСТУЮ базу, поменять у нее коллэйшн на Cyrillic_General_CI_AS и загрузить туда dt.
   cons24
 
8 - 11.03.20 - 10:40
(0) никак, страдай
   val245
 
9 - 11.03.20 - 11:18
(7) полпробую
(8) уже имеютсяч базы с Cyrillic_General_CI_AS  на этой же машине. нормально раболтают. Значит возможно
   mikecool
 
10 - 11.03.20 - 11:22
(1) да ты приколист

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.