Welcome to Sign in | Help

Re: Change Server Collation - intrebare pe ITBoard

  •  12-11-2006, 10:07 AM

    Re: Change Server Collation - intrebare pe ITBoard

    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

View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems