良い一日、
別の外部のINSERTステートメントに値を提供するような方法でINSERT-OUTPUTステートメントを使用できるかどうか疑問に思いました。そうすれば、1つのステートメントでエンティティテーブルと交差テーブルに値を追加できます。これを効果的に表現しているといいのですが。例えば:
INSERT INTO [#tblIntersect] ([Entity1ID], [Entity2ID])
VALUES
(
INSERT INTO [#tblEntity1] ([Value])
OUTPUT [inserted].[ID] AS [entity1ID], @entity2ID AS [entity2ID]
VALUES ('One')
)
したがって、内部のINSERT-OUTPUTステートメントは、テーブルに新しいエンティティを追加します#tblEntity1
。新しいエンティティのID
(これはIDENTITY(1, 1)
、ステートメントを通じて返されるように設定されOUTPUT
、静的な値(コードにすでに含まれています)とともに、外部INSERT
ステートメントに2つの値を提供します。
可能かもしれないと思う理由は、内部INSERT-OUTPUT
ステートメントを単独で実行すると、とにかくテーブルが返され、そのような出力は通常、INSERT
ステートメントの値を提供するために使用できるためです。
明らかに、この例は機能しません。単純な構文の問題だと思っていました。
コメントやアドバイスをよろしくお願いします。