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?