Gå til innhold

Returnere IDENTITY verdi fra INSERT


Anbefalte innlegg

Har ett SQL script som skal poste i to tabeller med relasjon i mellom dem..

 

Det vil si att tblSCHEMA.TagID er linket til tblTAG.ID,

scriptet ser ut som dette:

 

DECLARE @Temp AS int

INSERT INTO tblTAG (ID) VALUES ('2.2.2.2')

SET @Temp=(SELECT SCOPE_IDENTITY())

INSERT INTO tblSCHEMA (Bruker, TagID) VALUES ('TEST2', @Temp)

 

Scriptet funker fint, men det jeg lurer på er hva som skjer dersom to clienter poster på samme tid (alle connections kjører på samme database connection).

 

Det jeg er redd for att skal skje er att posting til tblSCHEMA for klientA blir knyttet mot tblTAG posting fra klientB, er det mulig att dette vil kunne skje slik som skriptet mitt er satt opp?

Lenke til kommentar
Videoannonse
Annonse

Åssen server bruker du?

 

Denne virker på MS SQL Server:

 

SET NOCOUNT ON; INSERT INTO Blah(tall) VALUES(1); SELECT @@IDENDITY; SET NOCOUNT OFF;

 

 

På MySQL og Access kan du vel bare skrive dette tror jeg:

 

INSERT INTO Blah(tall) VALUES(1); SELECT @@IDENDITY;

Lenke til kommentar

Ikke vær redd for det. SCOPE_IDENTITY() og @@IDENTITY returnerer alltid verdien som gjelder for ditt scope.

 

SCOPE_IDENTITY() returnerer siste identity-verdi innenfor ditt scope. Dvs. at den ikke returnerer identity-verdier som evt. INSERTS i triggere skulle finne på å gjøre. @@IDENTITY returnerer imidlertid siste identity-verdi for din session, også identity-verdier som triggere har utført.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...