Maison >base de données >tutoriel mysql >Comment obtenir le dernier ID de ligne inséré dans SQL Server ?

Comment obtenir le dernier ID de ligne inséré dans SQL Server ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-13 13:26:43931parcourir

How to Get the Last Inserted Row ID in SQL Server?

Récupération de l'ID de la dernière ligne insérée dans SQL Server

SQL Server offre une approche simplifiée pour obtenir l'ID nouvellement créé après l'insertion d'un enregistrement, particulièrement utile pour les tables employant le type de données IDENTITY.

La méthode :

Exploiter les colonnes IDENTITY

Pour les tables avec une colonne INT IDENTITY (ou BIGINT IDENTITY), utilisez cette instruction SQL :

<code class="language-sql">INSERT INTO [dbo].[YourTable] ([columns...])
VALUES ([..........])

SELECT SCOPE_IDENTITY();</code>

Explication :

  • L'instruction INSERT ajoute une nouvelle ligne.
  • SCOPE_IDENTITY() renvoie la valeur IDENTITY générée la plus récemment dans l'exécution en cours.

Remarque importante :

Cette méthode fonctionne mieux lors de l'insertion d'une seule ligne par exécution. L'insertion simultanée de plusieurs lignes peut conduire à des résultats imprévisibles.

Approches alternatives :

Bien que SCOPE_IDENTITY() soit largement utilisé, d'autres options existent :

  • @@IDENTITY : renvoie la dernière valeur IDENTITY générée pour la session en cours, quelles que soient les opérations ultérieures dans d'autres sessions ou étendues.
  • IDENT_CURRENT('table_name') : récupère la prochaine valeur IDENTITY planifiée pour l'affectation dans la table spécifiée. Il ne s'agit pas de l'ID de la dernière ligne insérée et peut différer.

Pour une comparaison détaillée de ces méthodes et de leurs différences subtiles, reportez-vous à cet article perspicace de Pinal Dave : https://www.php.cn/link/c89f28fe875efcf36c8973a7f81bfbb0

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!

Déclaration:
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