良い一日、別のINSERTに値を提供するために、使用INSERT-OUTPUT
、別の値(複数可)を提供するような方法でINSERT-OUTPUTステートメントを使用することが可能である場合、私は思っていた、外、INSERTステートメント。このようにして、単一のステートメントでエンティティテーブルと交差テーブルに値を追加することができます。これを効果的に言いたいと思います。たとえば:
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)
として設定されているが、その後、外側INSERT
文の2つの値を提供するために、私はすでに私のコードを持っている静的な値()と一緒に、OUTPUT
声明を通じて返されます。
なぜなら、内部のINSERT-OUTPUT
文を実行するとテーブルが返され、そのような出力は通常INSERT
ステートメントの値を提供するために使用できるからです。
明らかにこの例は機能しません。単純な文法の問題だと思っていました。
Thaあなたのコメントやアドバイスを事前に受け取ってください。
何かが再びそれを取得し、別のインサートのためにそれを選択した結果を使用するには、この場合には動作しません動作するはずです2つの一致するidカラムを持って? – Hajo
それはおそらく、私はちょうど少なくとも個別の文で最短のクエリを書こうとしていた:P – that0th3rGuy
どのデータベースソフトウェアが使用されていますか? INSERT OUTPUTが使用されている場合は、 – Hajo