SELECT列的OUTPUT子句不起作用

时间:2013-12-26 08:10:03

标签: sql sql-server sql-server-2012

我正在尝试使用OUTPUT子句来选择列但是失败了。这是一个简单的例子,

create table A (id int, name varchar(10))
create table B (id int)
insert into A values(1,'a'),(2,'b'),(3,'c')

declare @Inserted TABLE (ID INT, name varchar(10));

INSERT INTO B
OUTPUT INSERTED.ID, a.name INTO @Inserted
select id from a 

我收到此错误,

The multi-part identifier "a.name" could not be bound.

1 个答案:

答案 0 :(得分:3)

OUTPUT子句只能引用Inserted(以及可能Deleted)伪表 - 将语句更改为:

INSERT INTO B
OUTPUT INSERTED.ID, INSERTED.name INTO @Inserted
  SELECT id 
  FROM a 

然后它应该可以正常工作。