Vereisten: Een opgeslagen procedure, we moeten een stuk data invoegen in tabellen A en B, waarbij de hoofdrelatie tussen de vreemde sleutel tussen tabel A en tabel B, de kolommen die bij tabel B horen, de primaire sleutels van tabel A zijn, we moeten de primaire sleutelwaarde van tabel A invoegen nadat de invoeging is voltooid, we moeten de primaire sleutelwaarde van tabel A verkrijgen en vervolgens de gegevens in tabel B invoegen.
Na het invoegen van een record wil je direct de retourwaarde van de primaire sleutel in het datasheet krijgen. Deze primaire sleutel wordt automatisch gegenereerd.
Maak eerst een tijdelijke tabel om te testen, de code is als volgt:
@@IDENTITY
Nadat een INSERT, SELECT IN of bulk copy instructie is voltooid, bevat de @@IDENTITY de laatste identificatiewaarde die door deze instructie is geproduceerd. Als deze stelling geen invloed heeft op tabellen met geïdentificeerde kolommen, geeft @@IDENTITY NULL terug. Als meerdere rijen worden ingevoegd, worden meerdere identifierwaarden gegenereerd, @@IDENTITY wordt de laatste identifierwaarde teruggegeven. Als deze instructie één of meer triggers activeert die een insert-operatie uitvoeren die een geïdentificeerde waarde oplevert, zal het direct na uitvoering van de instructie aanroepen @@IDENTITY de laatste identificatiewaarde teruggeven die door de trigger is gegenereerd. Als de INSERT- of SELECT INTO-instructie faalt of massareplicatie faalt, of als de transactie wordt teruggedraaid, wordt de @@IDENTITY-waarde niet hersteld naar de vorige instellingen.
INVOER INVOER
Voor INSERT kun je de ingevoegde tabel raadplegen om de eigenschappen van de nieuwe rij op te vragen
De testcode is als volgt:
Het effect is als volgt:
|