17. september 2009 - 21:12Der er
4 kommentarer og 1 løsning
min cursor ser ikke ud til at loope i while statement
Hej jeg er ved at lære ms sql og stored procedure, triggers mm. Jeg arbejder med en trigger der skal opdatere et felt antal i tabellen afdeling. jeg bruger en cursor til at tælle antal medlmer af en afdeling. antal feltet bliver faktisk opdateret ved insert, men den bliver sat til 0 ( ikke null)
PS. jeg har læst en masse om at cursor er meget resource krævende og langsom, noget man skal prøve at undgå, men jeg vil nu gerne lære at bruge det alligevel :-)
kode TRIGGER opdate_antal ON afdeling AFTER insert AS BEGIN SET NOCOUNT ON;
declare @afdnr smallint
declare pegefinger CURSOR for select afdnr from AFDELING open pegefinger
FETCH pegefinger into @afdnr
WHILE @@FETCH_STATUS = 0 BEGIN update AFDELING set antal = (select COUNT(*) from MEDLEM where afdnr = @afdnr)
FETCH NEXT FROM pegefinger into @afdnr END --WHILE close pegefinger deallocate pegefinger END GO
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.