xmldeveloper:Insa eu ti-as recomanda sa schimbi collation la nivel de baza de date cu ALTER DATABASE.
În general, eu nu recomand să folosiţi baze cu un collation diferit de cel al server-ului, deoarece puteţi avea probleme atunci când folosiţi join-uri cu tabele temporare sau cu tabele sistem.
De exemplu:
CREATE DATABASE db COLLATE French_CI_AS
GO
USE db
CREATE TABLE TBL(X varchar(10) PRIMARY KEY)
CREATE TABLE #TMP(X varchar(10) PRIMARY KEY)
GO
SELECT * FROM TBL A INNER JOIN #TMP B ON A.X=B.X
GO
/*
DROP TABLE #TMP
USE master
DROP DATABASE db
*/
produce eroarea:
Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "French_CI_AS" in the equal to operation.
Sigur, există şi cazuri în care trebuie să folosim baze de date cu collation-uri diferite pe acelasi server, din cauza unor factori care nu sunt sub controlul nostru. În asemenea cazuri, putem rezolva problema specificând collation-ul la crearea tabelelor temporare sau folosind clauza COLLATE în comparaţie:
SELECT * FROM TBL A INNER JOIN #TMP B ON A.X=B.X COLLATE French_CI_AS
Răzvan