” == 0


Opdagede i dag en meget underlig måde at programmere på. Under en portering fra SQL Server 2000 til SQL Server 2005 stødte jeg på en fejlbesked i en stored procedure. Fejlbeskeden lød meget mærkelig og det viste sig også at det ikke var den helt rigtige besked der blev vist. Af meget uforklarlige årsager havde 3. parts udviklere forkærlighed for at benytte sig af notationen som følger:

SELECT CAST( '' AS INT(4) ) AS Test

Det går godt i SQL Server 2000, og der returneres et 0. Det gør det bare ikke i SQL Server 2005, her knækker den nakken på udtrykket.

Det jeg ikke lige begriber er, hvordan man kommer konstruktionen, at en tom streng selvfølgelig kan cast’es til 0 (nul). Det giver da ingen mening?

Reklamer

Skriv et svar

Udfyld dine oplysninger nedenfor eller klik på et ikon for at logge ind:

WordPress.com Logo

Du kommenterer med din WordPress.com konto. Log Out / Skift )

Twitter picture

Du kommenterer med din Twitter konto. Log Out / Skift )

Facebook photo

Du kommenterer med din Facebook konto. Log Out / Skift )

Google+ photo

Du kommenterer med din Google+ konto. Log Out / Skift )

Connecting to %s

%d bloggers like this: