在UPDATE中使用INSERT INTO中的OUTPUT



我正在从另外两个表中填充一个新表。但我也尝试使用刚刚插入的实体ID将其与其中一个表链接。

我成功地获得了插入的实体ID,如下所示:

INSERT INTO EngagementOverview (AccountingFirmId, AccountingFirmClientId, CompanyName, YearEnd, YearStart, AccountingFirmOfficeId)
OUTPUT inserted.id 
SELECT Engagement.AccountingFirmId, Engagement.AccountingFirmClientId, CompanyName, YearEnd, YearStart, AccountingFirmOfficeId
FROM Engagement
INNER JOIN EngagementHeader ON Engagement.EngagementHeaderId = EngagementHeader.Id

我如何在UPDATE语句中使用它来更新EngagementHeader表的字段?

您可以将值存储在一个表中。然后您可以在后续处理中使用该表。

例如:

DECLARE TABLE @ids (id int);
INSERT INTO EngagementOverview (AccountingFirmId, AccountingFirmClientId, CompanyName, YearEnd, YearStart, AccountingFirmOfficeId)
OUTPUT inserted.id INTO @ids
SELECT e.AccountingFirmId, e.AccountingFirmClientId, CompanyName, YearEnd, YearStart, AccountingFirmOfficeId
FROM Engagement e INNER JOIN
EngagementHeader eh
ON e.EngagementHeaderId = eh.Id;

我不确定你想要EngagementHeader更新什么。

最新更新