Как изменить collation sql сервера
Этот сайт обслуживается на хостинге AdminVPS, однако сейчас он заблокирован. Это могло произойти по одной из причин:
— Истек срок оплаты хостинга. Если Вы администратор сайта, войдите в личный кабинет и оплатите услуги хостинга;
— Владелец сайта отключил его;
— Были нарушены условия пользовательского соглашения.
Если Вы владелец сайта и считаете, что здесь какая-то ошибка, создайте запрос в техподдержку с указанием ссылки на страницу.
Как изменить collation sql сервера
Такая проблема. У 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с. Иначе возможны глюки. Переустанови mssql правильно и подключай базы.
у других баз на сервере установлен Cyrillic_General_CI_AS, значит это возможно и без переустанвки ms sql
1. stop services
2. sqlservr -m -T4022 -T3659 -s»MSSQLSERVER» -q»Cyrillic_General_CI_AS»
С коллэйшнами в сиквеле многоступенчатая система умолчаний. У сервера есть, у базы есть, у таблицы есть, даже у колонки в таблице есть. И только вот этот последний имеет смысл. Ибо чего в колонке стоит — так данные и будут лежать и обрабатываться. Остальное — всего лишь умолчания. Т.е. база будет создана по дефолту с коллэйшном сервера. Таблица будет создана по дефолту с коллэйшном базы. Строковая колонка в таблице будет создана по дефолту с коллэйшеном таблицы. Проблемы в 1С начинаются, когда коллэйшены в tempdb отличаются от коллэйшнов в БД 1С. А системные таблицы создаются по дефолту с коллэйшнами сервера.
Отсюда следует, что простая смена коллэйшна сервера или базы данных ничего не дает. Данные как лежали в других коллэйшенах, так лежать и останутся.
Для смены коллэйшенов системных таблиц при смене коллэйшенов сервера есть руководства — погугли. Для базы 1С проще всего просто перезагрузить dt, чтобы все таблицы/колонки создались в нужном коллэйшне.
Вообще мне непонятно, как работают остальные базы с Cyrillic_General_CI_AS, в то время как у сервера — SQL_Latin1_General_CP1_CI_AS. А глянь, какой у tempdb стоит.
SQL-Ex blog

Как изменить коллацию уровня сервера у запущенного экземпляра SQL Server
Добавил Sergey Moiseenko on Суббота, 29 января. 2022
В предыдущей статье я объяснил основы коллации SQL Server . Я бы посоветовал вам сначала прочесть эту статью (если вы её еще не читали). Здесь я покажу, как изменить коллацию уровня сервера или коллацию уровня экземпляра SQL Server для существующего экземпляра SQL Server.
Что такое коллация уровня сервера в SQL Server
Коллация определяет правила сортировки, свойства регистра и акцента данных. Это важная настройка, которая может влиять на ваши данные в базе данных, поэтому не рекомендуется менять её часто.
- Уровень сервера
- Уровень базы данных
- Уровень столбца
- Уровень выражения
Изменение коллации уровня сервера для существующего экземпляра SQL Server
В этом разделе будут описаны предварительные действия и процесс изменения коллации уровня сервера. Изменения имени коллации связаны с перестройкой системных баз данных.
Предварительные действия
- Сделайте полные резервные копии всех баз данных. Если возможно, сделайте снимок виртуальной машины прежде, чем приступить к дальнейшему.
- Убедитесь, что у вас имеются все скрипты для создания пользовательских баз данных или объектов баз данных, например, таблиц, логинов, пользователей, заданий и т.п. Мы создадим все объекты баз данных после изменения коллации.
- Экспортируйте все данные, используя bcp или сторонние инструменты.
- Запишите конфигурационные значения сервера и номер сборки, включая исправления (hotfixes), примененные к экземпляру SQL Server.
- Запишите места размещения файлов системных баз данных. Это может потребоваться, если вы перемещали ваши файлы системных баз данных в другое место.
Выполните команду ниже, чтобы получить параметры конфигурации уровня сервера.
--Получить все параметры конфигурации уровня сервера
SELECT * FROM sys.configurations;
Получите версию сборки SQL Server, выполнив скрипт ниже.
--Вывести версию сборки SQL Server
SELECT @@VERSION
GO
SELECT
SERVERPROPERTY('ProductVersion ') AS ProductVersion,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('ResourceVersion') AS ResourceVersion;
Подобным образом мы должны получить места размещения файлов системных баз данных с помощью следующего оператора T-SQL:
SELECT name, physical_name AS Database_file_location
FROM sys.master_files
WHERE database_id IN (DB_ID('master'), DB_ID('model'), DB_ID('msdb'), DB_ID('tempdb'));
Затем выполните следующие скрипты T-SQL, чтобы собрать информацию о коллации экземпляра SQL Server и всех баз данных одновременно.
--Получить имеющуюся коллацию экземпляра SQL Server Instance
--и всех баз данных
SELECT name, collation_name
FROM sys.databases
GO
--Получить существующую коллацию уровня сервера
SELECT SERVERPROPERTY('Collation') As [Instance Level Collation]
Теперь сгенерируем скрипты Create для всех логинов и заданий, созданных в экземпляре SQL Server для будущих ссылок и проверки. Помимо этого, вы можете выполнить скрипт ниже для получения списка всех логинов и заданий в экземпляре SQL Server.
--Get list of logins
Use master
Go
Select * from syslogins
--Get list of Jobs
USE msdb
Go
Select * from sysjobs
Перестройка экземпляра
После завершения выполнения пунктов из предыдущего раздела следующий шаг — это запуск процесса изменения коллации. Т.к. мы сделали бэкапы или экспортировали все данные пользовательских баз, необходимо отсоединить (detach) все пользовательские базы данных от экземпляра SQL Server. Вы можете также удалить их, если хотите импортировать экспортированные данные в новую базу данных. Я предложил бы отсоединить их, чтобы сохранить копию ваших баз данных с тем, чтобы вы могли присоединить их после изменения коллации.
Процесс изменения коллации уровня сервера требует перестройки системных баз данных. Нам нужно передать имя новой коллации при перестройке системных баз данных. Операция перестройки системных баз данных требует запуска установки SQL Server. Давайте начнем операцию перестройки системных баз данных для изменения коллации уровня сервера.
Авторизуйтесь в вашей системе, в которой вы будете менять коллацию. Откройте командную строку Windows или терминальное окно PowerShell. Откроте PowerShell, затем наберите cmd, чтобы использовать использовать утилиту командной строки Windows, как показано на рисунке ниже. Измените местоположение вашего каталога, куда вы поместили установочные файлы вашего SQL Server.
—Открыть командную строку Windows
Cmd
—Изменить каталог, где размещены установочные файлы SQL Server
Cd
—Мое местоположение C:\Manvendra\SQL2019\Developer_ENU поэтому я выполняю
cd C:\Manvendra\SQL2019\Developer_ENU
Теперь я нахожусь там, где хранятся установочные файлы SQL Server.

Затем мы выполним приведенную ниже команду, чтобы перестроить системные базы данных. Кроме того, мы должны выполнить эту команду с параметром новой коллации, чтобы изменить ее для экземпляра SQL Server и всех системных баз данных.
—Перестроить системные базы данных с новой коллацией.
—Замените все значения в на ваши.
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=
/SQLSYSADMINACCOUNTS= / SAPWD=
/SQLCOLLATION=
—Я заменил все значения и выполнил команду ниже с коллацией SQL_Latin1_General_CP1_CS_AS
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=WIN-AFNHJ3L1D6E\Administrator /SAPWD=L@b12 /SQLCOLLATION=SQL_Latin1_General_CP1_CS_AS
Вы можете увидеть вывод команды на скриншоте ниже. Вам следует оставить этот экран для продолжения, пока вы не получите рабочий каталог.

Здесь вы получили приглашение ко вводу. Это означает, что системные базы данных перестроились на новую коллацию для экземпляра SQL Server. Давайте проверим.

Убедитесь, что SQL Server запущен, и его службы загружены. Теперь запустите SQL Server Management Studio или выполните sqlcmd для подключения к экземпляру SQL Server. Вы можете видеть, что я успешно подключился к тому экземпляру, который был перестроен на предыдущих шагах. Мы видим только системные базы данных на изображении ниже.

Выполните следующие операторы T-SQL, чтобы собрать параметры коллации уровня сервера и уровня базы данных. Этот шаг проверит изменение коллации сервера и системных баз данных.
--Получить коллацию экземпляра SQL Server и всех бах данных
SELECT name, collation_name
FROM sys.databases
GO
--Получить существующую коллацию уровня сервера
SELECT SERVERPROPERTY('Collation') As [Instance Level Collation]
Как показано на скриншоте ниже, серверная коллация и коллация всех системных баз данных использует SQL_Latin1_General_CP1_CS_AS. Мы проверили, что новая коллация была сконфигурирована в экземпляре SQL Server.

Коллация сервера сменилась новой. Следующий шаг — присоединить все пользовательские базы данных, которые ранее были отсоединены перед перестройкой системных баз данных. Помните, что все существующие базы данных, которые присоединяются или восстанавливаются будет иметь ту же коллацию, которую они имели до резервирования или отсоединения. Вам потребуется вручную изменить ее после изменения серверной коллации. С другой стороны, все вновь создаваемые базы данных будут иметь новую коллацию по умолчанию.
Я присоединил мои пользовательские базы данных, как показано на рисунке ниже.

После присоединения баз данных вы снова можете проверить коллацию этих баз данных. Если вы хотите поменять их коллацию, обратитесь к предыдущей статье , где описывается, как это выполнить.
Заключение
Если вы экспортировали данные из баз данных, вы можете выполнить все скрипты, сгенерированные на подготовительном этапе при создании объектов базы данных. Затем вы можете импортировать экспортированные данные в эти вновь созданные базы данных и объекты. Вы можете проверить и модифицировать конфигурационные параметры уровня сервера, которые были получены в разделе подготовки.
Также вы можете переместить файлы системных баз данных, если хотите хранить их специальном месте, т.к. перестройка системных баз данных будет создавать их в местоположении по умолчанию. Можно также выполнить скрипты для создания логинов и заданий с помощью ранее сгенерированных скриптов. Не восстанавливайте системные базы данных, т.к. это изменит вновь сконфигурированную коллацию на старую для этих баз данных.
Обратные ссылки
Нет обратных ссылок
Комментарии
Показывать комментарии Как список | Древовидной структурой
Задание или изменение параметров сортировки сервера
Параметры сортировки сервера применяются по умолчанию для всех установленных системных баз данных с экземпляром SQL Server, а также для новых пользовательских баз данных.
Необходимо внимательно проверить параметры сортировки на уровне сервера, так как они могут повлиять на следующие компоненты:
- Правила сортировки и сравнения в = , JOIN , ORDER BY и другие операторы сравнения текстовых данных.
- Параметры сортировки CHAR столбцов , VARCHAR , NCHAR и NVARCHAR в системных представлениях, системных функциях и объектах в tempdb (например, временных таблицах).
- Имена переменных, курсоров и меток GOTO . Например, переменные @pi и @PI считаются разными, если параметры сортировки на уровне сервера чувствительны к регистру, и те же переменные, если параметры сортировки на уровне сервера не учитывают регистр.
Параметры сортировки сервера в SQL Server
Параметры сортировки сервера задаются во время установки SQL Server . Параметры сортировки на уровне сервера по умолчанию основываются на языковом стандарте операционной системы.
Например, параметры сортировки по умолчанию для систем, использующих английский язык (EN-US): SQL_Latin1_General_CP1_CI_AS. Дополнительные сведения, включая список языковых стандартов ОС в сопоставлениях параметров сортировки по умолчанию, см. в подразделе «Параметры сортировки уровня сервера» раздела параметры сортировки и поддержка Юникода.
Параметры сортировки уровня сервера для SQL Server Express LocalDB SQL_Latin1_General_CP1_CI_AS и не могут быть изменены во время установки или после нее.
Изменение параметров сортировки сервера в SQL Server
Изменение параметров сортировки по умолчанию для экземпляра SQL Server может быть сложной задачей.
Вместо изменения параметров сортировки по умолчанию для всего экземпляра SQL Serverможно указывать параметры сортировки по умолчанию для каждой новой базы данных, создаваемой с помощью условия COLLATE выражений CREATE DATABASE и ALTER DATABASE . Дополнительные сведения см. в разделе Set or Change the Database Collation.
Изменение параметров сортировки экземпляра включает следующие шаги:
- Проверьте наличие данных и скриптов, необходимых для повторного создания пользовательской базы данных и всех ее объектов.
- Экспортируйте все данные с помощью такого средства, как bcp Utility. Дополнительные сведения см. в статье Массовый импорт и экспорт данных (SQL Server).
- Удалите все пользовательские базы данных.
- Перестройте master базу данных, указав новые параметры сортировки SQLCOLLATION в свойстве setup команды . Пример:
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ] /SQLCOLLATION=CollationName
Настройка параметров сортировки сервера в Управляемый экземпляр SQL Azure
Параметры сортировки на уровне сервера в Управляемом экземпляре SQL Azure можно указать при создании экземпляра и нельзя изменить позднее. Параметры сортировки на уровне сервера можно настроить на портале Azure или с помощью PowerShell и шаблона Resource Manager во время создания экземпляра. Параметры сортировки по умолчанию — SQL_Latin1_General_CP1_CI_AS.
При переносе баз данных из SQL Server в Управляемый экземпляр SQL Azure проверка параметры сортировки сервера в исходном SQL Server с помощью SERVERPROPERTY(N’Collation’) функции и создайте управляемый экземпляр, соответствующий параметрам сортировки SQL Server. Перенос базы данных из SQL Server на Управляемый экземпляр SQL с параметрами сортировки уровня сервера, которые не совпадают, может привести к нескольким непредвиденным ошибкам в запросах. Изменить параметры сортировки на уровне сервера в существующем управляемом экземпляре нельзя.
Параметры сортировки в базе данных Azure SQL
Вы не можете изменить или задать параметры сортировки логического сервера в базе данных Azure SQL, но можно настроить параметры сортировки каждой базы данных как для данных, так и для каталога. Параметры сортировки каталога определяют параметры сортировки для системных метаданных, таких как идентификаторы объектов. Обе параметры сортировки можно указать независимо при создании базы данных в портал Azure в T-SQL с помощью CREATE DATABASE и в PowerShell с помощью командлета New-AzSqlDatabase.
Следующие шаги
- Поддержка параметров сортировки и Юникода
- Установка и изменение параметров сортировки базы данных
- Задание или изменение параметров сортировки столбца
- Перестроение системных баз данных
