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!