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 :
@@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.SCOPE_IDENTITY()
est l'approche recommandée.IDENT_CURRENT('tableName')
pour récupérer l'ID d'une table sans insertion d'enregistrement récente.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!