Guten Tag,
Ich habe mich gefragt, ob es möglich ist, eine INSERT-OUTPUT-Anweisung so zu verwenden, dass sie den Wert bzw. die Werte für eine andere, äußere INSERT-Anweisung liefert. Auf diese Weise können Werte zu einer Entitätstabelle und einer Kreuzungstabelle in einer einzigen Anweisung hinzugefügt werden - ich hoffe, ich habe das richtig formuliert. Zum Beispiel:
INSERT INTO [#tblIntersect] ([Entity1ID], [Entity2ID])
VALUES
(
INSERT INTO [#tblEntity1] ([Value])
OUTPUT [inserted].[ID] AS [entity1ID], @entity2ID AS [entity2ID]
VALUES ('One')
)
Die innere INSERT-OUTPUT-Anweisung fügt also eine neue Entität zur Tabelle #tblEntity1
. Das neue Unternehmen ID
(die als IDENTITY(1, 1)
wird dann über die OUTPUT
Anweisung, zusammen mit einem statischen Wert (den ich bereits in meinem Code habe), um die beiden Werte für die äußere INSERT
Erklärung.
Der Grund, warum ich denke, dass es möglich sein könnte, ist, dass die Ausführung der inneren INSERT-OUTPUT
Anweisung selbst gibt ohnehin eine Tabelle zurück, und eine solche Ausgabe kann normalerweise verwendet werden, um Werte für INSERT
Erklärungen.
Offensichtlich funktioniert dieses Beispiel nicht; ich hatte gehofft, dass es sich nur um ein einfaches Syntaxproblem handelt.
Ich danke Ihnen im Voraus für alle Kommentare und Ratschläge.