Situatie
Erorile de collation apar cel mai frecvent cand trebuie sa facem join-uri intre tabele aflate pe baze diferite. (se poate intampla si pe aceeasi baza, daca exista tabele ce au coloane cu collation diferit, dar acest lucru se intampla mai rar)
Asta pentru ca , destul de des, bazele, chiar daca se afla pe acelasi server (si cu atat mai des in cazul in care se afla pe servere diferite) pot avea database collation diferit.
Database collation – reprezinta modul in care datele din baza respectiva sunt interpretate si sortate.
Mai jos avem doua baze de date, de pe acelasi server, care au collation diferit.
In prima baza am o tabela numita Angajati iar in a doua baza am o tabela numita Departamente.
Daca rulez in paralel selecturi din cele doua tabele, nu am nicio problema, datele sunt afisate simultan, precum se poate vedea mai jos:
Simptome
Problema apare cand vrem sa facem join intre cele doua tabele iar printre coloanele pe care facem join sunt si coloane de tip text (varchar)
Solutie
Solutia este de a vedea tipul de collation de pe una dintre baze, (click dreapta pe baza si properties) si de a pune acel tip de collation in join pe coloanele de tip text (varchar) folosind clauza collate
Se poate lua collation-ul de pe oricare dintre cele doua baze, dupa cum se poate vedea in urmatoarea imagine
Leave A Comment?