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.