Oll*_*leR 2 t-sql sql-server sql-server-2008
我在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
Run Code Online (Sandbox Code Playgroud)
提前致谢
你不能直接从一个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
;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
151 次 |
| 最近记录: |