Select @DFree1 = d.Free1 from deleted d För att kontrollera om den är null måste du skriva: kan du vara lite tydligare??? Nja, man måste inte använda IS NULL. Det beror på konfiguration. Man bör dock använda det, eftersom det alltid fungerar. Mer info på min site: http://hedgate.editthispage.com/2001/09/12 Tack för snabba svaret! Ledsen Trash men jag tyckte jag var glasklar.. Hmm... Det stod i din artikel att det där gick att sätta på i odbc källan vilket jag sett och hittat. USE masterTriggerproblem. Vad är deleted d om inte raden fanns innan?
IF (@DFree1= NULL)
Begin
Return
End
Det här verkar inte funka..
Finns det nåt annat det kan vara om det inte är null??
Scenariot är alltså att man lägger till en rad i databasen. Jag vill inte gå igång om den raden inte fanns innnan. Och jag vill inte använda triggern på bara insert måste gå både på update och insert...
Mvh
RickardSv: Triggerproblem. Vad är deleted d om inte raden fanns innan?
SELECT @DFree1 = d.Free1 FROM deleted d
IF (@DFree1 IS NULL)
BEGIN
Return
END
Du bör oxå förutsätt att det kan finnas mer än en post i deleted. Om man t.ex tar bort poster med en DELETE sql sats.Sv: Triggerproblem. Vad är deleted d om inte raden fanns innan?
Vill du använda triggers så kan du skapa tre triggers för Deleted, Inserted och Updated....Sv: Triggerproblem. Vad är deleted d om inte raden fanns innan?
Sv: Triggerproblem. Vad är deleted d om inte raden fanns innan?
Funka perfekt!
Det jag tycker är lite skumt dock är att jag kör
IF (@DFree1 = NULL)
I en anslutande stored procedure och där funkar det fint..
Den raden funkar som sagt fint på en SQL 2000 men inte på en lokal msdb som jag demade programmet på ute hos en kund..
Jäkla märkligt det där..
Tack ialf!
Mvh
RickardSv: Triggerproblem. Vad är deleted d om inte raden fanns innan?
Vad jag menade var att jag inte ville ha förslaget att bara köra triggern som en insert eftersom det bara var vid insert ny rad jag ville detektera det här problemet.
Senare i triggern (om inte insert utan update) händer det lite annan skit.
Därför sa jag att triggern gick igång vid både insert och update och så skulle det vara.
Exemplet vad dessutom redigerat bara för att visa på problemet. Igentligen händer det en massa mer i den IF raden än bara kollar om just det värdet var null..
Tack för omtanken!
Mvh
Rickard, tror det här blev otydligt om nåt..Sv: Triggerproblem. Vad är deleted d om inte raden fanns innan?
Men om det används i en trigger går det att slå av den där ansi-null grejen som standard på själva databasen? Hittade det under options i enterprice manager men det verkar inte göra någon skillnad..
Mvh
Rickard
Ps:(Uppfattat att jag inte ska använda =null men tänkte bara få igång demon ute hos kunden så den funkar sjysst fram tills dess dom får den nya versionen..)Sv: Triggerproblem. Vad är deleted d om inte raden fanns innan?
EXEC sp_dboption '[databasnamn]', 'ANSI nulls', 'FALSE'