Проблема с изменением сопоставления базы данных (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)
Попытка исправления ошибок, упомянутых при удалении этих объектов базы данных, вызывает другую ошибку с другими заголовками в процессе преобразования.
Любая идея? Есть ли четкое решение для решения этой проблемы?
Ответы
Ответ 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.