Il problema delle regole di confronto è che, sebbene il database abbia le proprie regole di confronto, ogni tabella e ogni colonna può avere le proprie regole di confronto. Se non specificato, prende il valore predefinito del suo oggetto padre, ma può essere diverso.
Quando modifichi le regole di confronto del database, sarà il nuovo valore predefinito per tutte le nuove tabelle e colonne, ma non cambia le regole di confronto degli oggetti esistenti all'interno del database. Devi andare e modificare manualmente le regole di confronto di ogni tabella e colonna.
Fortunatamente ci sono script disponibili su Internet che possono fare il lavoro. Non ho intenzione di consigliarne nessuno perché non li ho provati, ma qui ci sono alcuni link:
http://www.codeproject.com/Articles/302405/The-Easy-way-of-change-collation-of-all-database
Aggiorna al volo Fascicolazione di tutti i campi nel database
http://www.sqlservercentral.com/Forums/Topic820675-146-1.aspx
Se hai bisogno di regole di confronto diverse su due oggetti o non puoi modificare le regole di confronto, puoi comunque JOIN
tra di loro usando COLLATE
comando e scegliendo le regole di confronto che desideri unire.
SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE Latin1_General_CI_AS
o utilizzando le regole di confronto predefinite del database:
SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE DATABASE_DEFAULT