2

MS SQL Server 2008 のテーブルに挿入しており (同じテーブルからの値のコピーです)、挿入の出力値を取得したいと考えています。select ステートメント (下の例では t.id) の id 値を取得したいのですが、INSERTED.id は問題なく動作します。

create table tmp.tbl_inserted (fromId int, toId int)

INSERT INTO mytable (name)
OUTPUT t.id, INSERTED.id INTO tmp.tbl_inserted
SELECT t.name FROM mytable t

前もって感謝します

4

1 に答える 1

5

から直接行うことはできませんINSERT:

from_table_name

更新または削除する行を指定するために使用される DELETE、UPDATE、または MERGE ステートメントの FROM 句に含まれるテーブルを指定する列プレフィックスです。

INSERT言及されていないことに注意してください。

代わりにあなたがしなければならないことは、チートして a を使用することMERGEです:

MERGE INTO mytable m
USING (name,id FROM mytable) t ON 1=0
WHEN NOT MATCHED THEN INSERT (name) VALUES (t.name)
OUTPUT t.id, INSERTED.id INTO tmp.SizeCurveGroup_inserted
;
于 2013-04-19T14:23:53.277 に答える