Partilhar via


Definir o agrupamento de bancos de dados definidos pelo usuário para corresponder aos dos bancos de dados mestre e modelo

Esta regra verifica se os bancos de dados definidos pelo usuário são definidos usando um agrupamento de banco de dados com o mesmo agrupamento para mestre ou modelo.

Práticas recomendadas

Recomendamos que os agrupamentos de bancos de dados definidos pelo usuário correspondam ao agrupamento de mestre ou modelo. Caso contrário, conflitos de agrupamento podem ocorrer, o que poderia impedir a execução do código. Por exemplo, quando um procedimento armazenado une uma tabela a uma tabela temporária, o SQL Server pode finalizar o lote e retornar um erro de conflito de agrupamento, se os agrupamentos do banco de dados definido pelo usuário e do banco de dados modelo forem diferentes. Isto ocorre porque tabelas temporárias são criadas em tempdb, o que serve como base para o agrupamento daquele modelo.

Se surgirem erros de conflito de agrupamento, considere um das soluções seguintes:

  • Exporte os dados do banco de dados do usuário e importe-os em novas tabelas com o mesmo agrupamento que os bancos de dados mestre e modelo.

  • Recrie os bancos de dados do sistema para usar um agrupamento que corresponda ao agrupamento do banco de dados do usuário. Para mais informações sobre como recriar os bancos de dados do sistema, consulte Recriando bancos de dados do sistema.

  • Modifique os procedimentos armazenados que uniram as tabelas do usuário às tabelas em tempdb para criar tabelas no tempdb usando o agrupamento do banco de dados do usuário. Para isso, acrescente a cláusula COLLATE database_default às definições de coluna da tabela temporária, como demonstrado no seguinte exemplo:

    CREATE TABLE #temp1 ( c1 int, c2 varchar(30) COLLATE database_default )