/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[MSSQL] Brug af IS NOT NULL og ISNULL i st~
Fra : Søren Nielsen


Dato : 02-04-02 12:12

Jeg er stødt ind i et lidt mystisk problem i en stored procedure.
Følgende kode:

IF (@x IS NOT NULL)
print 'Tester: ' + isnull(@x,'Er null')

Giver følgende output:

Tester: Er null

Er det mig som stadig har for mange påske-tømmermænd eller burde
ovenstående opføre sig anderledes?

PS:
@x er erklæret som nvarchar(10) og *burde* være NULL ved kørsel.

--
Med venlig hilsen
Søren Nielsen
news@n-crypt.dk



 
 
Jens Gyldenkærne Cla~ (02-04-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 02-04-02 13:01

"Søren Nielsen" <news@n-crypt.dk> skrev:

> @x er erklæret som nvarchar(10) og *burde* være NULL ved kørsel.

Noget tyder på at den ikke er det. Jeg har lige prøvet nedenstående
i SQL2K, med resultatet "Er ikke null" (Jeg har prøvet med begge
select-linjer, nr. 2 giver et tomt recordsæt).

-------
DECLARE @x nvarchar(10)
SELECT @x = NULL
SELECT @x = ShortName FROM forening WHERE ID = 12345

IF (@x IS NOT NULL)
print 'Tester: ' + isnull(@x,'Er null')
ELSE
   print 'Er ikke null'
-------

--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)

Søren Nielsen (02-04-2002)
Kommentar
Fra : Søren Nielsen


Dato : 02-04-02 13:14


"Jens Gyldenkærne Clausen" <jc@dmf.dk> wrote in message
news:Xns91E48E9A4AA4Cjcdmfdk@130.225.247.90...
> "Søren Nielsen" <news@n-crypt.dk> skrev:
> > @x er erklæret som nvarchar(10) og *burde* være NULL ved kørsel.
> Noget tyder på at den ikke er det.

Ok. Det jeg bare ikke fatter en brik af er, at den hos mig gør som den
gør. Det betyder jo at der et eller andet er en bug.

Vi kan godt blive enige om at nedenstående linje ikke bør udskrive 'Er
null' ikk'?

IF (@x IS NOT NULL) print isnull(@x,'Er null')

Koden er naturligvis hevet ud af en større sammenhæng, men det burde
ikke ændre ved det faktum at @x ikke kan/må ændre værdi ud af den blå
luft.

--
Med venlig hilsen
Søren Nielsen
news@n-crypt.dk



Jens Gyldenkærne Cla~ (02-04-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 02-04-02 13:23

"Søren Nielsen" <news@n-crypt.dk> skrev:

> Vi kan godt blive enige om at nedenstående linje ikke bør
> udskrive 'Er null' ikk'?
>
> IF (@x IS NOT NULL) print isnull(@x,'Er null')

Med mindre @x = 'Er null' bør det ikke kunne lade sig gøre - det
har du ret i.

Har du prøvet den kodestump jeg sendte før - giver det samme
resultat hos dig?

--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)

Søren Nielsen (02-04-2002)
Kommentar
Fra : Søren Nielsen


Dato : 02-04-02 14:31

"Jens Gyldenkærne Clausen" <jc@dmf.dk> wrote in message
news:Xns91E492430268Djcdmfdk@130.225.247.90...
> Har du prøvet den kodestump jeg sendte før - giver det samme
> resultat hos dig?

Nej.
Koden fungerede korrekt andre steder, men desværre kan jeg ikke
fremprovokere fejlen længere.
@x fik sin værdi fra en tabel, som jeg har kørt en update på og nu
opstår fejlen ikke længere.
Så nu finder jeg sikkert aldrig ud af hvad der var galt :(

Det lyder meget mystisk, men det virker som om at @x havde fået en
værdi, som "is not null" og "isnull" reagerede forskelligt på.

--
Med venlig hilsen
Søren Nielsen
news@n-crypt.dk



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste