Compartilhar via


Agrupando bancos de dados definidos pelo usuário para corresponder a bancos de dados mestres

Esta regra verifica se os bancos de dados definidos pelo usuário são definidos por meio de um agrupamento de banco de dados idêntico ao de master ou model.

Práticas recomendadas

É recomendável que os agrupamentos de bancos de dados definidos pelo usuário correspondam ao agrupamento de master ou model. Caso contrário, conflitos de agrupamento podem ocorrer, o que poderia impedir a execução do código. Por exemplo, quando um procedimento armazenado unir uma tabela a uma tabela temporária, o SQL Server poderá finalizar o lote e retornar um erro de conflito de agrupamento, caso os agrupamentos do banco de dados definido pelo usuário e do banco de dados model sejam diferentes. Isso ocorre porque tabelas temporárias são criadas em tempdb, que baseia seu agrupamento no de model.

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 para novas tabelas que contenham o mesmo agrupamento que os bancos de dados master e model.

  • 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 unem tabelas de usuário a tabelas em tempdb a fim de criar tabelas em tempdb usando o agrupamento do banco de dados de 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 )