Obtention de valeurs d'identité lors d'insertions groupées dans SQL Server 2005
Lors de l'insertion de plusieurs enregistrements d'une table à une autre, il peut être utile d'obtenir les valeurs d'identité attribuées aux enregistrements nouvellement insérés. Cela permet des mises à jour efficaces de la table source avec des clés étrangères référençant la table cible.
Insertion d'enregistrements et récupération des valeurs d'identité
Dans ce cas, nous souhaitons insérer des enregistrements de la table B dans la table A et récupérer les valeurs d'identité des enregistrements nouvellement insérés pour mettre à jour le champ "NewId" dans la table B.
Utilisation de la clause OUTPUT
MS SQL Server 2005 fournit la clause OUTPUT qui permet aux utilisateurs de capturer les valeurs insérées lors d'une opération de modification de données. Dans ce cas, nous pouvons l'utiliser comme suit :
DECLARE @output TABLE (id int) Insert into A (fname, lname) OUTPUT inserted.ID INTO @output SELECT fname, lname FROM B select * from @output
En utilisant la clause OUTPUT, nous créons une variable de table @output pour stocker les valeurs d'identité. Le insert.ID fait référence à la valeur d'identité de l'enregistrement nouvellement inséré dans la table A.
Après avoir exécuté l'instruction d'insertion, la table @output contiendra les valeurs d'identité correspondant aux lignes insérées à partir de la table B. Vous pouvez utilisez ensuite ces valeurs pour mettre à jour le champ NewId dans le tableau B sans avoir besoin de curseurs.
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!