sql >> Database teknologi >  >> RDS >> Sqlserver

@@IDENTITY, SCOPE_IDENTITY(), OUTPUT og andre metoder til at hente sidste identitet

Det afhænger af, hvad du prøver at gøre...

@@IDENTITET

Returnerer den sidste IDENTITY-værdi, der blev produceret på en forbindelse, uanset den tabel, der producerede værdien, og uanset omfanget af den sætning, der producerede værdien.@@IDENTITY returnerer den sidst indtastede identitetsværdi i en tabel i din aktuelle session. @@IDENTITY er begrænset til den aktuelle session og er ikke begrænset til det aktuelle omfang. For eksempel, hvis du har en trigger på en tabel, der får en identitet til at blive oprettet i en anden tabel, vil du få den identitet, der blev oprettet sidst, selvom det var triggeren, der skabte den.

SCOPE_IDENTITY()

Returnerer den sidste IDENTITY-værdi, der blev produceret på en forbindelse og af en sætning i samme omfang, uanset den tabel, der producerede værdien.SCOPE_IDENTITY() ligner @@IDENTITY, men det vil også begrænse værdien til dit nuværende omfang. Med andre ord returnerer den den sidste identitetsværdi, som du eksplicit har oprettet, i stedet for enhver identitet, der blev oprettet af en trigger eller en brugerdefineret funktion.

IDENT_CURRENT()

Returnerer den sidste IDENTITY-værdi, der blev produceret i en tabel, uanset forbindelsen og omfanget af den sætning, der producerede værdien. IDENT_CURRENT er begrænset til en specificeret tabel, men ikke af forbindelse eller omfang.



  1. Bruger gruppe efter på to felter og tæl i SQL

  2. Hvad er den korrekte SQL-type til at gemme et .Net Timespan med værdier> 24:00:00?

  3. SQL Server:Gør alle store og små bogstaver til store og små bogstaver/bogstaver

  4. Hvilke ressourcer findes der til justering af databasens ydeevne?