Проблема с изменением параметров сортировки базы данных (SQL Server 2008) - PullRequest
15 голосов
/ 10 сентября 2011

При попытке изменить параметры сортировки моей существующей базы данных (включая данные) с ARABIC_CS_AS на PERSIAN_100_CS_AS возникает следующая ошибка:

Не удалось изменить для базы данных «XXXX».(Microsoft.SqlServer.Smo)

Исключительная ситуация при выполнении оператора или пакета Transact-SQL.(Microsoft.SqlServer.ConnectionInfo)

Объект ItemTables зависит от параметров сортировки базы данных.Сортировка базы данных не может быть изменена, если от нее зависит привязанный к схеме объект.Удалите зависимости от параметров сортировки базы данных, а затем повторите операцию.
Объект 'CK_FilteredReportColumnFilters' зависит от параметров сортировки базы данных.Сортировка базы данных не может быть изменена, если от нее зависит привязанный к схеме объект.Удалите зависимости от параметров сортировки базы данных, а затем повторите операцию.
Объект 'CK_FilteredReportColumnFilters_1' зависит от параметров сортировки базы данных.Сортировка базы данных не может быть изменена, если от нее зависит привязанный к схеме объект.Удалите зависимости от параметров сортировки базы данных, а затем повторите операцию.
Объект 'CK_FilteredReportColumnFilters_2' зависит от параметров сортировки базы данных.Сортировка базы данных не может быть изменена, если от нее зависит привязанный к схеме объект.Удалите зависимости от параметров сортировки базы данных, а затем повторите операцию.
Объект 'CK_Reports' зависит от параметров сортировки базы данных.Сортировка базы данных не может быть изменена, если от нее зависит привязанный к схеме объект.Удалите зависимости от параметров сортировки базы данных, а затем повторите операцию.

Ошибка ALTER DATABASE.Параметры сортировки по умолчанию для базы данных 'XXXX' не могут быть установлены в Persian_100_CS_AS.(Microsoft SQL Server, ошибка: 5075)

Попытка исправить упомянутые ошибки путем удаления этих объектов базы данных вызывает еще одну ошибку с другими заголовками в процессе преобразования.

Есть идеи?Есть ли какое-то четкое решение для решения этой проблемы?

Ответы [ 4 ]

16 голосов
/ 10 октября 2011

Ах, это одна из худших проблем в SQL Server: нельзя изменить параметры сортировки после создания объекта (это верно как для таблиц, так и для баз данных ...).

Вы можете сохранить тольковаши данные (не используйте утилиты bcp или утилиты резервного копирования, вам нужно поместить их в csv файлов схожих типов ...), удалить базу данных, воссоздать с правильным сопоставлением и повторно импортировать данные в новую базу данных ...

Надеюсь, это поможет.

2 голосов
/ 04 декабря 2013

У меня та же проблема, и все объекты были функциями Сначала занимает полное резервное копирование

функция скрипта как создать. Удалите эти функции и запустите

use master
go
ALTER DATABASE xxx SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
go
ALTER DATABASE xxx COLLATE yyyy
go
ALTER DATABASE xxx SET MULTI_USER
go

Воссоздание функций

Надеюсь, это поможет.

0 голосов
/ 11 декабря 2014

Просто введите N перед написанием строки.

, например:

insert into table values (N'yourstring')

N = Юникод.

0 голосов
/ 23 января 2014

Просто создайте новую базу данных с ex database_b. Измените параметры сортировки в соответствии с вашими требованиями и экспортируйте из нового источника в целевой объект.

или

используйте alt collation tool, который переопределит все ошибки.

- Appu

...