Krav: En lagret procedure, vi skal indsætte et stykke data i tabellerne A og B, hvor hovedforholdet mellem fremmednøgler mellem tabel A og tabel B, kolonnerne tilknyttet tabel B er primærnøglerne til tabel A, vi skal indsætte primærnøgleværdien fra tabel A efter indsættelsen er afsluttet, vi skal hente primærnøgleværdien fra tabel A og derefter indsætte dataene i tabel B.
Efter indsættelse af en post vil du straks have returværdien for primærnøglen i dens datablad. Denne primærnøgle genereres automatisk.
Først opretter du en midlertidig tabel til test, koden er som følger:
@@IDENTITY
Når en INSERT, SELECT IN eller bulk copy-sætning er færdig, indeholder @@IDENTITY den sidste identifikationsværdi, som denne sætning har produceret. Hvis denne sætning ikke påvirker nogen tabeller med identificerede kolonner, returnerer @@IDENTITY NULL. Hvis flere rækker indsættes, genereres flere identifikatorværdier, @@IDENTITY den sidste identifikatorværdi returneres. Hvis denne sætning udløser en eller flere triggere, der udfører en indsættelsesoperation, der producerer en identificeret værdi, vil kald @@IDENTITY umiddelbart efter udsendelsen returnere den sidste identifikationsværdi, der er genereret af triggeren. Hvis INSERT- eller SELECT INTO-sætningen fejler, eller massereplikering fejler, eller hvis transaktionen rulles tilbage, gendannes @@IDENTITY-værdien ikke til sine tidligere indstillinger.
OUTPUT INDSAT
For INSERT kan du referere til den indsatte tabel for at forespørge egenskaberne for den nye række
Testkoden er som følger:
Effekten er som følger:
|