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

Проблема с изменением сопоставления базы данных (SQL Server 2008)

Когда я попытался изменить сортировку существующей базы данных (включая данные) с 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)

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

script выполняет функцию create. Удалите эти функции, затем запустите

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

Восстановить функции

Я надеюсь, что это поможет.

Ответ 3

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

или

используйте инструмент сравнения, который будет перекрывать все ошибки.

- Appu

Ответ 4

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

например:

insert into table values (N'yourstring')

N = unicode.