Tenho um banco de dados existente que usa o Arabic_CI_AS
collation, mas preciso convertê-lo para SQL_Latin1_General_CP1_CI_AS
o collation padrão do servidor, mas o problema é quando utilizo o seguinte comando:
USE master;
GO
ALTER DATABASE MyDB
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO
Me dá a seguinte mensagem de erro:
Msg 5075, Nível 16, Estado 1, Linha 1
O objeto 'GetAllSuppliersInCompliance' depende do agrupamento do banco de dados. A ordenação do banco de dados não pode ser alterada se um objeto associado ao esquema depender dela. Remova as dependências do agrupamento de banco de dados e repita a operação.Msg 5075, Nível 16, Estado 1, Linha 1
O objeto 'GetTier1SupplierComplianceStatus' depende do agrupamento do banco de dados. A ordenação do banco de dados não pode ser alterada se um objeto associado ao esquema depender dela. Remova as dependências do agrupamento de banco de dados e repita a operação. .....Msg 5072, Nível 16, Estado 1, Linha 1 Falha em
ALTER DATABASE. O agrupamento padrão do banco de dados 'MyDB' não pode ser definido como SQL_Latin1_General_CP1_CI_AS.
Então tentei o seguinte para desabilitar as restrições temporárias usando o seguinte comando:
EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
Em seguida, executei o primeiro comando, porém o mesmo erro apareceu.
Supondo que esses objetos sejam procedimentos armazenados ou visualizações (e não tabelas), você precisará:
Como um aparte, você não precisava
sp_msforeachtable "ALTER TABLE..."