Maison > base de données > tutoriel mysql > Comment récupérer la dernière valeur d'identité dans SQL Server : @@IDENTITY contre SCOPE_IDENTITY() contre OUTPUT ?

Comment récupérer la dernière valeur d'identité dans SQL Server : @@IDENTITY contre SCOPE_IDENTITY() contre OUTPUT ?

DDD
Libérer: 2024-12-28 03:29:13
original
992 Les gens l'ont consulté

How to Retrieve the Last Identity Value in SQL Server: @@IDENTITY vs. SCOPE_IDENTITY() vs. OUTPUT?

Récupération de la dernière valeur d'identité : méthodes et portée

Lorsqu'ils travaillent avec des tables qui exploitent les identités de clé primaire, les développeurs rencontrent souvent le besoin de récupérer la valeur de l’identité nouvellement insérée. Bien que diverses méthodes existent pour cette tâche, les considérations de portée et de performances jouent un rôle crucial dans la détermination de l'approche appropriée.

@@IDENTITY vs. SCOPE_IDENTITY()

Les deux @ @IDENTITY et SCOPE_IDENTITY() récupèrent la dernière valeur d'identité produite au sein d'une connexion. Cependant, @@IDENTITY n'est pas limité à la portée et peut renvoyer des identités produites par des requêtes ou des déclencheurs précédents, quelle que soit leur portée. D'un autre côté, SCOPE_IDENT TY() limite sa portée à la connexion et à la requête spécifiques où l'identité a été générée, garantissant qu'elle renvoie uniquement la valeur souhaitée.

Méthode OUTPUT

La clause OUTPUT peut être utilisée pour récupérer des identités dans une instruction INSERT. En l'incluant dans la requête, la valeur d'identité nouvellement créée peut être renvoyée avec d'autres colonnes insérées. Cette approche est pratique mais peut conduire à une réduction des performances dans les cas où seule la valeur d'identité est requise.

Choisir la méthode appropriée

Le choix de la méthode dépend du spécifique exigences de l'application :

  • @@IDENTITY : Le plus approprié lorsque la valeur d'identité la plus récente, quelle que soit la portée, est nécessaire.
  • SCOPE_IDENTITY() : Idéal lorsque la valeur d'identité doit être confinée à une portée ou une requête spécifique.
  • IDENT_CURRENT() : Utile lorsque la valeur d'identité d'une table spécifique est requise, quelle que soit la connexion ou scope.

Scope-Safety of OUTPUT Method

La méthode OUTPUT est scope-safe, ce qui signifie qu'elle renvoie uniquement les identités générées par la requête actuelle dans le même session. Il ne récupère pas les identités produites par d'autres requêtes ou déclencheurs. Cela garantit l’intégrité des données et évite les effets secondaires involontaires.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal