Krav: En lagrad procedur, vi behöver infoga en databit i tabellerna A och B, där huvudfrämmande nyckelrelationen mellan tabell A och tabell B, kolumnerna kopplade till tabell B är primärnycklarna i tabell A, vi måste infoga primärnyckelvärdet i tabell A efter insättningen, vi måste erhålla primärnyckelvärdet i tabell A och sedan infoga datan i tabell B.
Efter att ha infogat en post vill du omedelbart få returvärdet för primärnyckeln i dess datablad. Denna primärnyckel genereras automatiskt.
Skapa först en tillfällig tabell för att testa, koden är som följer:
@@IDENTITY
Efter att en INSERT, SELECT IN eller bulk copy-sats är klar, innehåller @@IDENTITY det sista identifieringsvärdet som producerats av detta uttalande. Om detta uttalande inte påverkar några tabeller med identifierade kolumner returnerar @@IDENTITY NULL. Om flera rader infogas genereras flera identifierarvärden, @@IDENTITY det senaste identifierarvärdet returneras. Om detta uttalande utlöser en eller flera triggers som utför en insättningsoperation som ger ett identifierat värde, kommer anrop @@IDENTITY omedelbart efter att satsen har exekverats att returnera det senaste identifieringsvärdet som genererats av triggern. Om satsen INSERT eller SELECT INTO misslyckas eller massreplikering misslyckas, eller om transaktionen rullas tillbaka, återställs inte värdet @@IDENTITY till sina tidigare inställningar.
INLAGD UTGÅNG
För INSERT kan du referera till den infogade tabellen för att fråga egenskaperna hos den nya raden
Testkoden är följande:
Effekten är följande:
|