Подтвердить что ты не робот

Ошибка сортировки

Я использую Microsoft SQL Server Management Studio. У меня есть две базы данных, одна из которых - это системная база данных с основной базой данных, а другая - моя база данных под названием CCTNS_CAS_DE_DB. Когда я пытаюсь сгенерировать отчеты с помощью инструмента, использующего базу данных CCTNS_CAS_DE_DB.

Я получаю следующую ошибку:

Невозможно разрешить конфликт сортировки между "Latin1_General_CI_AI" и "SQL_Latin1_General_CP1_CI_AS" в равном действии

Я прошел через SQL Server и проверил свойства основной базы данных, он показывает сортировку как Latin1_General_CI_AI, но когда я перешел к свойствам базы данных CCTNS_CAS_DE_DB, она показывает сортировку как SQL_Latin1_General_CP1_CI_AS.

Я искал ошибку в Интернете, но большинство решений говорят о том, как изменить сортировку конкретной таблицы, но я не встретил никакого запроса, который изменит мою базу данных сопоставления на Latin1_General_CI_AI.

Я столкнулся с одним запросом: -

ALTER DATABASE CCTNS_CAS_DE_DB COLLATE Latin1_General_CI_AI

Когда я запускал этот запрос в своем SQL Server, он сделал следующую ошибку: -

Msg 5030, уровень 16, состояние 2, строка 1
База данных не может быть заблокирована исключительно для выполнения операции.
Msg 5072, уровень 16, состояние 1, строка 1
Ошибка ALTER DATABASE. Значение по умолчанию для базы данных "CCTNS_CAS_DE_DB" не может быть установлено на Latin1_General_CI_AI.

Я знаю, что этот вопрос уже был опубликован здесь, но это было в другом контексте, я думаю.

4b9b3361

Ответ 1

Вот самый большой намек на вашу проблему:

Msg 5030, уровень 16, состояние 2, строка 1 Для выполнения операции база данных не может быть заблокирована исключительно.

Что вам нужно сделать, это установить базу данных в однопользовательский режим, прежде чем запускать оператор ALTER DATABASE, а затем вернуть его в многопользовательский режим после его завершения. Это заблокирует базу данных и сделает ее доступной только для текущего соединения, что позволит вам успешно выполнить оператор ALTER DATABASE ... COLLATE.

Вы можете использовать SQL Server Management Studio или команды T-SQL для этого.

Ответ 2

Сначала нужно установить его в SINGLE_USER.

ALTER DATABASE [database] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 

GO 

ALTER DATABASE [database] COLLATE SQL_1xCompat_CP850_CI_AS; 

GO 

ALTER DATABASE [database] SET MULTI_USER; 

GO