我有一个使用排序规则的现有数据库Arabic_CI_AS
,但我需要将其转换SQL_Latin1_General_CP1_CI_AS
为服务器的默认排序规则,但问题是当我使用以下命令时:
USE master;
GO
ALTER DATABASE MyDB
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO
它给了我以下错误信息:
消息 5075,级别 16,状态 1,第 1 行
对象“GetAllSuppliersInCompliance”取决于数据库排序规则。如果模式绑定对象依赖于它,则无法更改数据库排序规则。删除对数据库排序规则的依赖项,然后重试该操作。消息 5075,级别 16,状态 1,行 1
对象“GetTier1SupplierComplianceStatus”取决于数据库排序规则。如果模式绑定对象依赖于它,则无法更改数据库排序规则。删除对数据库排序规则的依赖项,然后重试该操作。......消息 5072,级别 16,状态 1,第 1 行
ALTER DATABASE 失败。数据库“MyDB”的默认排序规则不能设置为 SQL_Latin1_General_CP1_CI_AS。
因此,我尝试使用以下命令暂时禁用约束:
EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
然后我执行了第一个命令,但是出现了同样的错误。
假设这些对象是存储过程或视图(而不是表),您需要:
顺便说一句,你不需要
sp_msforeachtable "ALTER TABLE..."