Impossibile risolvere il conflitto tra le regole di confronto "Latin1_General_100_CI_AS" e "Latin1_General_CI_AS"

Impossibile risolvere il conflitto tra le regole di confronto

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 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *