Maison > base de données > tutoriel mysql > Comment récupérer la dernière valeur d'identité dans SQL Server ?

Comment récupérer la dernière valeur d'identité dans SQL Server ?

Barbara Streisand
Libérer: 2024-12-29 17:48:14
original
708 Les gens l'ont consulté

How to Retrieve the Last Identity Value in SQL Server?

Méthodes alternatives pour récupérer les dernières valeurs d'identité : un guide complet

Dans la programmation de bases de données, la récupération de la valeur d'un champ d'identité de clé primaire après une opération d'insertion est cruciale. Cet article examine diverses méthodes à cet effet et donne un aperçu de leur fonctionnalité et de leur adéquation à différents scénarios.

@@IDENTITY

@@IDENTITY récupère la dernière valeur d'identité générée dans la session en cours, indépendamment de la table associée à l'identité.

declare @t table (
    id int identity primary key,
    somecol datetime default getdate()
)
insert into @t default values

select @@IDENTITY --returns 1
Copier après la connexion

L'inconvénient de @@IDENTITY est qu'il n'est pas limité à la portée. Par conséquent, il peut renvoyer la dernière valeur d'identité générée par n'importe quelle instruction de la session, y compris celles en dehors de la transaction en cours.

SCOPE_IDENTITY()

SCOPE_IDENTITY() récupère la dernière valeur d'identité générée dans la portée actuelle, qui est limitée à l'instruction et à la transaction qui l'ont produite.

select SCOPE_IDENTITY() --returns 1
Copier après la connexion

SCOPE_IDENTITY() est une méthode plus précise par rapport à @@IDENTITY car elle garantit que la valeur d'identité renvoyée est spécifique à la portée actuelle.

OUTPUT

L'utilisation de la clause OUTPUT avec une instruction insert vous permet de renvoyer une table contenant les lignes insérées, y compris les valeurs d'identité générées.

Create Table #Testing (  
    id int identity,  
    somedate datetime default getdate()  
)  
insert into #Testing  
output inserted.*  
default values
Copier après la connexion

OUTPUT fournit un moyen pratique de récupérer plusieurs valeurs d'identité à la fois au sein d'une seule transaction. Cependant, elle est spécifique à la table ciblée et nécessite des opérations supplémentaires de création et de nettoyage de table.

Conclusion

Le choix de la méthode de récupération de la dernière valeur d'identité dépend des exigences spécifiques de l'application.

  • @@IDENTITY convient aux scénarios dans lesquels la valeur d'identité de toute ligne insérée dans la session est nécessaire, quel que soit le table.
  • SCOPE_IDENTITY() est préférable lorsque la valeur d'identité doit être spécifique à la portée actuelle, garantissant ainsi l'exactitude des transactions.
  • OUTPUT peut être utilisé pour récupérer efficacement plusieurs valeurs d'identité au sein d'une transaction contrôlée. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal