Обновить столбец таблицы первичным ключом после вставки (в одном операторе) - PullRequest
0 голосов
/ 15 апреля 2020

Используя оператор обновления, как я могу напрямую установить значение столбца в первичный ключ оператора вставки? Мне нужно это как одно утверждение.

Я знаю, что следующее неверно, но это помогает понять мою идею:

update AppNationalities
set CountrySelectionID = (
                            select [INSERTED.pkID] from
                            (
                                insert into CountrySelections
                                output INSERTED.pkID
                                values(CountryID, 'test', 0)
                            )
                        )

1 Ответ

0 голосов
/ 15 апреля 2020

Поместите значения во временную таблицу:

declare @ids table (pkID int);

insert into CountrySelections
    output INSERTED.pkID into @ids
    values (CountryID, 'test', 0);

update AppNationalities
    set CountrySelectionID = i.id
    from @ids i;

Я не думаю, что предложение output допускается в предложении FROM оператора UPDATE или DELETE.

...