Tema: Re: SQL Server (2005) default collation is Stored Procedure parametrai
Autorius: Sabotage
Data: 2009-07-14 15:20:17
Pratestavau ir as ant savo serverio, panasu kad stored procedure ieinantys
parametrai ir kintamieji naudoja serverio collation, o uzklausos (select col
from table) vykdomos pagal duomenu bazes collationa
"Meff" <noemail@japan.cc> wrote in message
news:h3hk98$9eq$1@trimpas.omnitel.net...
> Sveiki.
> SQL Server 2005.
> Problema tokia, kad nors duombazių Collationai ir sutampa - pas klientus
> Stored Procedūros vis tiek vykdomos kitaip.
>
> Situacija: mano serveris turi CS collationą. Stored procedūroje yra toks
> tekstas:
> ALTER PROCEDURE dbo.procedura
> ( @ImportId int )
> AS
> SELECT * FROM ImportTable WHERE ImportID = @ImportId
>
> tuo tarpu lentelėje laukas vadinasi ImportId.
> Mano serveryje su CS nustatymu ši procedūra nesusikompiliuoja (alter
> procedure išmeta klaidą, kad nėra collumo). Lygiai taip pat yra ir pas
> klientą
>
> Dabar kita situacija:
>
> ALTER PROCEDURE dbo.procedura
> ( @ImportId int )
> AS
> SELECT * FROM ImportTable WHERE ImportId = @ImportID
>
> mano serveryje susikompiliuoja, o pas klientą - ne. SQL Serveris rodo
> errorą kad neegzistuoja '@ImportID'
>
> Čia yra CASE'ingo problema. Bet kodėl mano duombazės serveris
> sukompiliuoja procedūrą? Duombazių Collationai sutampa. Įtariu, kad taip
> vyksta dėl to, kad klientų serveryje DEFAULT COLLATION bus nustatytas CS,
> o maniškiame - CI. Bet nejaugi duombazės collationas neturėtų owerridinti
> serverio collationo? Ar Stored Procedūrų lygmenyje svarbiausias yra MASTER
> duombazės Collationas?
>
> Man niekaip nepavyksta atkurti tokios pačios development aplinkos, kaip
> pas klientą, taigi negaliu ištaisyti CASE'ingo BUGų.
>
> Iš anksto ačiū už info.