Insérer plusieurs enregistrements et obtenir une valeur d'identité sans curseur
Insérer plusieurs enregistrements dans une table parent (A) à partir d'une table enfant (B) est une tâche courante dans la gestion des données. Il est souvent nécessaire de mettre à jour les enregistrements de la table enfant avec les valeurs d'identité générées pour les enregistrements nouvellement insérés dans la table parent.
Microsoft SQL Server 2005 fournit une solution à cette exigence via la clause OUTPUT. La clause OUTPUT capture les valeurs d'identité des enregistrements nouvellement insérés et les stocke dans une variable de table (@output). Cela permet une récupération efficace des valeurs d'identité sans la surcharge liée à l'utilisation d'un curseur.
Voici un exemple d'extrait de code démontrant l'utilisation de la clause OUTPUT :
DECLARE @output TABLE (id int) -- Insert records from table B into table A Insert into A (fname, lname) OUTPUT inserted.ID INTO @output SELECT fname, lname FROM B -- Retrieve the identity values from @output select * from @output
En exécutant ce qui précède code, les valeurs d'identité des enregistrements insérés seront stockées dans la variable de table @output. Cette variable peut ensuite être utilisée pour mettre à jour la colonne NewId de la table B de manière appropriée.
L'utilisation de la clause OUTPUT est une approche efficace et simple pour insérer plusieurs enregistrements et obtenir leurs valeurs d'identité dans Microsoft SQL Server 2005. Elle fournit un solution robuste et maintenable pour les tâches de manipulation de données impliquant des tables parent et enfant.
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!