Disons que j'ai deux tablesComment puis-je faire plusieurs inserts sans un curseur
tblA ( tableAID INT IDENTITY (1,1), foo VARCHAR (100))
tblB ( tableBID INTIDENTITY (1,1), tableAID INT, bar varchar (100))
tblB.tableAID est un FK à tblA.
Je veux insérer un groupe d'enregistrements (tirés d'une autre table du système) dans cette paire de tables. J'ai besoin de savoir quel est l'identifiant de l'insertion dans tblA avant de pouvoir l'insérer dans tblB.
Y at-il un moyen de le faire sans le traiter ligne par ligne?
C'est le plus proche de ce que je cherchais.Le seul inconvénient est que la clause OUTPUT ne peut accéder qu'aux colonnes spécifiées dans la table cible, ce qui est une sorte de problème de poule et d'oeuf - si j'avais quelque chose d'unique que j'insérais dans la table cible, je pourrais simplement me joindre à la table cible pour obtenir l'ID inséré. Pourtant, j'accepte votre réponse parce qu'elle m'a appris quelque chose de nouveau. – stannius
Conseil: Si vous utilisez MERGE au lieu de INSERT, vous pouvez inclure des colonnes non mentionnées dans la clause OUTPUT. Je vais ajouter un exemple à ma réponse. –