Errore conflitto tra le regole di confronto

Da SIGLAkb.

Dp-ingranaggio3.png Modificando le regole di confronto (collating sequence) di un database di MS SQL Server già popolato si può incorrere nel seguente errore in fase di esecuzione di SELECT che utilizzano delle condizioni di join:

Impossibile risolvere il conflitto tra le regole di confronto SQL_Latin1_General_CP1_CI_AS
e Latin1_General_CI_AS nell'operazione equal to.
Dp-Errore sqlserver collating sequence.png

L'errore ("Cannot resolve collation conflict.../Impossibile risolvere il conflitto tra le regole di confronto...") si manifesta perché la collating sequence, che è una proprietà di tutti campi di tipo char, varchar, text, nchar, nvarchar e ntext, può essere diversa campo per campo nella stessa tabella o tra tabelle diverse, e comunque diversa da quella di default del database.

Si può risolvere modificando la collating sequence dei campi esistenti con una semplice ALTER TABLE.

L'argomento è ben chiarito in questo post sullo User Group Italiano di SQL Server (UGISS):  community.ugiss.org/forums/p/1062/3045.aspx.

Bibliografia