首页 > 解决方案 > 插入后用主键更新表列(在一个语句中)

问题描述

使用更新语句,如何直接将列值设置为插入语句的主键?我需要这个作为一个声明。

我知道以下是错误的,但它有助于我的想法通过:

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

标签: sqlsql-serversql-updateprimary-keysql-insert

解决方案


将值放入临时表中:

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;

我认为在or语句的output子句中不允许使用该FROM子句。UPDATEDELETE


推荐阅读