29. januar 2001 - 13:33Der er
6 kommentarer og 1 løsning
Trigger
Jeg har en trigger som kører hver gang der bliver indsat en post i min database. Hvordan finder jeg (i triggeren) ud af, hvilken ID (primærnøgle, \"autonumber\") min nyindsatte post har?
Da ID\'en er en autonumber er det selvfølgelig den højeste ID der er den nyeste. Desværre forholder det sig sådan, at der bliver indsat lidt over 80 poster ad gangen hvert andet minut. Det er vel ikke sikkert, at jeg bare kan tage den højeste ID for at være den der lige er blevet indsat? Hvis triggeren bliver udført bare et splitsekund efter, at den næste post er blevet indsat, går det jo helt galt.
Så: Hvordan finder jeg (min trigger) ud af, hvilke data der lige er blevet indsat i databasen?
Voila!!! Den indsatte post er fundet!! Inserted tabellen er kun til rådighed i den pågældende trigger og indeholder de samme felter som den tabel, der resulterer i at triggeren fyres af. Sammen med denne kan deleted tabellen bruges! Denne gør det muligt at se hvilke rækker der slettes og hvilke der opdateres da en opdatering kan betragtes som en slettet og en indsat række! Faktisk meget genialt lavet af MS!!
Det kan muligvis være, at du skal lave en cursor da Inserted tabellen muligvis kan indeholde mere end en række!!!
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.