数据库归类更改的问题(SQL Server 2008)

Far*_*ker 16 database sql-server collation sql-server-2008

当我试图把现有的数据库(包括数据)的整理,从改变ARABIC_CS_ASPERSIAN_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)

尝试通过删除这些数据库对象来纠正所提到的错误会导致转换过程中的其他标题出现另一个错误.

任何的想法 ?有没有明确定义的解决方案来解决这个问题?

Cri*_*rsi 17

啊,这是SQL Server中最严重的问题之一:一旦创建了对象,就无法更改排序规则(对于表和数据库都是如此......).

您只能保存数据(不要使用bcp或备份实用程序,需要将它们放在类似文件类型的csv中...),删除数据库,使用正确的排序重新创建并重新导入数据到新数据库......

希望这可以帮助.

  • 实际上,您可以在不删除表的情况下更改列的排序规则。除了依赖于(例如)计算列,约束或索引的列。 (2认同)

Hai*_*man 5

我遇到了同样的问题,所有对象都是函数 首先进行完整备份

脚本函数作为创建。删除这些函数然后运行

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
Run Code Online (Sandbox Code Playgroud)

重新创建函数

我希望这有帮助。