Maison > base de données > tutoriel mysql > Comment récupérer des valeurs d'identité après avoir inséré plusieurs enregistrements dans SQL Server 2005 sans curseurs ?

Comment récupérer des valeurs d'identité après avoir inséré plusieurs enregistrements dans SQL Server 2005 sans curseurs ?

Susan Sarandon
Libérer: 2024-12-31 13:29:10
original
379 Les gens l'ont consulté

How to Retrieve Identity Values After Inserting Multiple Records in SQL Server 2005 Without Cursors?

Insérer plusieurs enregistrements et récupérer les valeurs d'identité

Lors de l'insertion de plusieurs enregistrements dans une table avec une colonne d'identité, l'obtention des valeurs d'identité nouvellement générées peut être cruciale pour les manipulations de données ultérieures . Cet article explique comment y parvenir sans utiliser de curseur dans Microsoft SQL Server 2005.

Description du problème

Considérez le scénario suivant : Vous disposez de deux tables, la table A avec une colonne d'identité (id). et le tableau B, qui contient des données connexes. Vous souhaitez insérer des enregistrements de la table B dans la table A et obtenir les valeurs d'identité respectives pour mettre à jour la colonne NewId dans la table B.

Solution

SQL Server 2005 fournit un mécanisme pratique via la clause OUTPUT pour récupérer les valeurs d'identité générées lors des opérations d'insertion. Le code suivant montre comment utiliser cette fonctionnalité :

DECLARE @output TABLE (id int)

INSERT INTO A (fname, lname)
OUTPUT INSERTED.id INTO @output
SELECT fname, lname FROM B
Copier après la connexion

Cette requête insérera les enregistrements de la table B dans la table A et stockera les valeurs d'identité dans une variable de table appelée @output. La variable de table @output contiendra une seule colonne (id) avec les valeurs d'identité nouvellement générées, vous permettant de les récupérer et de les utiliser pour un traitement ultérieur.

Exemple

Considérez les exemples de tables et de données fourni dans la description du problème. Après avoir exécuté le code ci-dessus :

-- Insert records into Table A and retrieve identity values
DECLARE @output TABLE (id int)

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

-- Display the identity values in the table variable
SELECT * FROM @output
Copier après la connexion

Le résultat sera un tableau avec les valeurs d'identité des lignes insérées :

id
-------
1
2
3
Copier après la connexion

Ces valeurs d'identité pourront ensuite être utilisées pour mettre à jour le NewId colonne du tableau B en conséquence.

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