2

我正在插入 MS SQL Server 2008 中的表(它是来自同一个表的值的副本)并且想要获取插入的输出值。我想获取 select 语句的 id 值(下例中的 t.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没有提到。

你必须做的是作弊并使用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 回答