Maison >base de données >tutoriel mysql >Comment puis-je récupérer efficacement les valeurs d'identité après avoir inséré plusieurs enregistrements dans SQL Server ?

Comment puis-je récupérer efficacement les valeurs d'identité après avoir inséré plusieurs enregistrements dans SQL Server ?

DDD
DDDoriginal
2025-01-04 22:44:42854parcourir

How Can I Efficiently Retrieve Identity Values After Inserting Multiple Records in SQL Server?

Insertion de plusieurs enregistrements et récupération des valeurs d'identité

Lors de l'insertion de plusieurs enregistrements dans une table, vous pouvez rencontrer le besoin de récupérer les valeurs d'identité générées pour chaque enregistrement inséré. Dans ce cas, où vous insérez des enregistrements de la table B dans la table A et souhaitez obtenir les valeurs d'identité des enregistrements insérés, il existe une solution qui élimine le besoin de curseurs.

Dans SQL Server 2005, vous peut exploiter la clause OUTPUT pour accomplir cette tâche. La clause OUTPUT vous permet de spécifier une variable de table qui recevra la sortie de l'instruction INSERT, y compris les valeurs d'identité des lignes nouvellement insérées.

Voici un exemple :

DECLARE @output TABLE (id int)

INSERT INTO A (fname, lname)
OUTPUT INSERTED.ID INTO @output
SELECT fname, lname
FROM B

Par à l'aide de la clause OUTPUT, vous pouvez remplir une variable de table nommée "@output" avec les valeurs d'identité des enregistrements insérés. Vous pouvez ensuite interroger cette variable de table pour récupérer les valeurs :

SELECT *
FROM @output

Cette approche vous permet d'insérer efficacement plusieurs enregistrements et d'obtenir leurs valeurs d'identité sans recourir à des curseurs ou à des requêtes supplémentaires.

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