Используйте OUTPUT из INSERT INTO в UPDATE - PullRequest
0 голосов
/ 22 октября 2019

Я заполняю новую таблицу из двух других таблиц. Но я также пытаюсь использовать только что вставленный идентификатор объекта, чтобы связать его с одной из таблиц.

Я успешно получил вставленный идентификатор сущности следующим образом:

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?

1 Ответ

2 голосов
/ 22 октября 2019

Вы бы сохранили значение в таблице. Затем вы можете использовать таблицу для последующей обработки.

Например:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...