如何使用正确的IDENTITY值填充表变量?

时间:2014-09-02 05:50:01

标签: tsql sql-server-2012

好吧,我有两张桌子:

CREATE TABLE Temp(
        TEMP_ID int IDENTITY(1,1) NOT NULL, ... )

CREATE TABLE TEMP1(
    TEMP1_ID int IDENTITY(1,1) NOT NULL, 
    TEMP_ID int, ... )

它们与TEMP_ID外键相关联。 在存储过程中,我需要创建吨 Temp和Temp1行并更新它们,所以我创建了一个表变量(@TEMP),我正在处理它,最后在Temp中创建一个大的INSERT。我的问题是:如何在没有安全插入多个会话的情况下用正确的TEMP_ID填充@Temp?

1 个答案:

答案 0 :(得分:0)

您可以使用Scope_Identity()查找最后插入的行。您可以使用Output子句查找所有新插入(或更新)的行。

create table #t1
(
    id int primary key identity,
    val int
)


Insert into #t1 (val) 
    output inserted.id, inserted.val
    values (10), (20), (30)