Maison > base de données > tutoriel mysql > Comment récupérer l'identité d'une ligne nouvellement insérée dans SQL Server ?

Comment récupérer l'identité d'une ligne nouvellement insérée dans SQL Server ?

Mary-Kate Olsen
Libérer: 2025-01-23 09:16:14
original
487 Les gens l'ont consulté

How to Retrieve the Identity of a Newly Inserted Row in SQL Server?

Récupération de l'ID d'une ligne nouvellement ajoutée dans SQL Server : exploration de @@IDENTITY, SCOPE_IDENTITY, IDENT_CURRENT et de la clause OUTPUT

Lors de l'ajout de lignes à une table contenant une colonne d'identité, l'obtention de l'ID nouvellement généré est souvent cruciale. SQL Server propose plusieurs méthodes pour y parvenir, chacune avec ses propres avantages et limites.

@@IDENTITÉ

Cette fonction renvoie la valeur d'identité générée la plus récemment dans toutes les tables de la session en cours. Par conséquent, la valeur renvoyée peut ne pas toujours refléter l'ID de la ligne que vous venez d'insérer. Cela s'avère utile lors de la récupération de l'ID d'un déclencheur ou d'une autre instruction exécutée au cours de la même session.

SCOPE_IDENTITY()

SCOPE_IDENTITY() fournit la dernière valeur d'identité générée dans la session et la portée en cours. Il s'agit généralement de la méthode privilégiée pour récupérer l'ID de la ligne que vous venez d'ajouter.

IDENT_CURRENT('tableName')

Cette fonction récupère la dernière valeur d'identité générée pour une table spécifique, quelle que soit la session ou la portée. Ceci est utile lorsque vous avez besoin de l'ID d'une table dans laquelle vous n'avez pas directement inséré d'enregistrement.

Clause SORTIE

La clause OUTPUT de l'instruction INSERT permet d'accéder à chaque ligne insérée par cette instruction, y compris les valeurs d'identité. La sortie peut être dirigée vers une table ou une variable temporaire pour une récupération ultérieure de l'ID.

Sélection de la meilleure approche

La méthode optimale dépend de vos besoins spécifiques :

  • Utilisez @@IDENTITY lors de l'obtention de l'ID à partir d'un déclencheur ou d'une autre instruction au cours de la même session.
  • Pour l'ID de la ligne que vous venez d'insérer, SCOPE_IDENTITY() est l'approche recommandée.
  • Employez IDENT_CURRENT('tableName') pour récupérer l'ID d'une table sans insertion d'enregistrement récente.
  • Pour récupérer les identifiants de plusieurs lignes dans une seule instruction, ou pour une récupération fiable des identifiants même si des erreurs se produisent, utilisez la clause OUTPUT.

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