3

良い一日、

別の外部の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ステートメントの値を提供するために使用できるためです。

明らかに、この例は機能しません。単純な構文の問題だと思っていました。

コメントやアドバイスをよろしくお願いします。

4

1 に答える 1

1

ドキュメントに従って、要件が満たされる可能性があります。

#tblIntersectに2つの一致するID列があると仮定すると、これは機能するはずです

INSERT INTO [#tblEntity1] ([Value])
OUTPUT [inserted].[ID] AS [entity1ID], @entity2ID AS [entity2ID]
   INTO #tblIntersect
VALUES ('One')
于 2012-04-19T16:16:57.020 に答える