Nel post di oggi vedremo come risolvere l’errore Impossibile risolvere il conflitto tra le regole di confronto “Latin1_General_100_CI_AS” e “Latin1_General_CI_AS” che si verifica in fase di esecuzione di una query SQL.
Impossibile risolvere il conflitto tra le regole di confronto “Latin1_General_100_CI_AS” e “Latin1_General_CI_AS”
Causa dell’errore
Questo il messaggio di errore completo in italiano
Impossibile risolvere il conflitto tra le regole di confronto “Latin1_General_100_CI_AS” e “Latin1_General_CI_AS” nell’operazione equal to
Questo il messaggio in lingua inglese
Cannot resolve the collation conflict between “SQL_Latin1_General_100_CI_AS” and “Latin1_General_CI_AS” in the equal to operation.
L’errore si verifica perchè i campi confrontati tramite la clausola WHERE delle due tabelle hanno una diversa configurazione delle regole di confronto (COLLATION).
Questa una query di esempio che potrebbe generare l’errore
Per poter correggere l’errore possiamo adottare due soluzioni
Soluzione 1
La più veloce consiste nell’utilizzare la clausola COLLATE in modo da modificare temporaneamente la regola di confronto della colonna che genera l’errore.
Nella query che abbiamo visto poco prima possiamo risolvere l’errore utilizzando la clausola COLLATE in questo modo
Soluzione 2
Per poter rendere permanente la regola di confronto, in modo da non dover utilizzare nelle query future COLLATE, possiamo modificarla tramite questa istruzione SQL
Per maggiori informazioni sulla clausola COLLATE vi rimando a questo link.
A Presto 😉