Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Não é possível resolver o conflito de agrupamento


A questão sobre agrupamentos é que, embora o banco de dados tenha seu próprio agrupamento, cada tabela e cada coluna pode ter seu próprio agrupamento. Se não for especificado, assume o padrão de seu objeto pai, mas pode ser diferente.

Quando você altera o agrupamento do banco de dados, ele será o novo padrão para todas as novas tabelas e colunas, mas não altera o agrupamento dos objetos existentes dentro do banco de dados. Você precisa alterar manualmente o agrupamento de cada tabela e coluna.

Felizmente, existem scripts disponíveis na internet que podem fazer o trabalho. Eu não vou recomendar nenhum porque eu não tentei, mas aqui estão alguns links:

http://www.codeproject.com/Articles/302405/The-Easy-way-of-change-Collation-of-all-Database

Atualizar agrupamento de todos os campos no banco de dados em tempo real

http://www.sqlservercentral.com/Forums/Topic820675-146-1.aspx

Se você precisar ter um agrupamento diferente em dois objetos ou não puder alterar os agrupamentos - ainda poderá JOIN entre eles usando COLLATE comando e escolhendo o agrupamento que você deseja unir.
SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE Latin1_General_CI_AS 

ou usando o agrupamento de banco de dados padrão:
SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE DATABASE_DEFAULT