INSERT ... OUTPUT不能使用非INSERTED.fields?

时间:2013-11-04 11:23:28

标签: sql-server

Declare @myTrace TABLE (
srcId int,
destId int);

INSERT INTO Destination ( Refer, OtherData) 
  OUTPUT s.id, INSERTED.id INTO @myTrace  --can't use s.id ??
  SELECT Refer, OtherData
    FROM MySource s
    WHERE somecondition = 1;

如果未插入到目标表中,SQL Server似乎不接受来自MySource的字段。我对吗 ?任何解决方法? (我使用的是2008 R2)

1 个答案:

答案 0 :(得分:0)

是的,遗憾的是,这是不可能的,并且没有根本原因。它没有实现。

使用MERGE声明。它允许您OUTPUT您喜欢的一切。