如何从'中获取价值? OUTPUT中的表是查询的一部分

时间:2014-08-18 15:09:02

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

这是我的疑问:

INSERT INTO Translated
OUTPUT @ChangeID,Inserted.ResourceID,Project,Inserted.TranslatedValue into backup
Select NEWID(),ResourceID,TranslatedValue,getdate()
from Resources 
where Project ='blahblah'

现在我无法在OUTPUT部分获取Project的值,因为它来自Resources表但没有插入,有没有简单的方法来获取值而不修改查询结构?

2 个答案:

答案 0 :(得分:1)

输出子句只能引用插入的行。您可以在查询后更新备份表。

update  b
set     project = r.projcet
from    backup b
join    resources r
on      b.ResourceID = r.ResourceID
where   b.project is null

答案 1 :(得分:1)

您必须执行第二个查询,将OUTPUT表连接到Resources,以获取插入的每行的Project值。

可能类似以下内容:

Select Project
From   Backup B
Inner Join Resources R on B.ResourceID = R.ResourceID
where B.Project is null