如何在SQL Server中立即插入后更新表

时间:2015-02-20 10:20:02

标签: sql-server

我插入一个包含5行的表格,在插入每一行后,我必须使用id并需要插入到其他表格中。

TABLE NAME: A
TABLE NAME: B

TABLE A coloumns中:首先id将获得genarate,此ID将用于其他一些表格。

id id1 id2 id3 id4 id5

一段时间后,表B将插入5行。

表B:

id
1
2
3
4
5

现在我必须用

更新表格coloumns
id1 = 1, id2 = 2, id3 = 3, id4 = 4, id5 = 5

我正在尝试范围标识,它只向我提供最后一行ID。

有人可以提出实现这个目标的方法吗?

select top 5 id 
from table B 
order by 1 desc

对我不起作用。

insert into table B values(id1)
insert into table B values(id2)
insert into table B values(id3)
insert into table B values(id4)
insert into table B values(id5)

完成所有这些插入后,我需要更新Table A

update Table A 
set id1fromA = id1,
    id1fromA = id2,
    id1fromA = id3,
    id1fromA = id4,
    id1fromA = id5

任何人都可以建议实现这一目标的方法。

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

DECLARE @id1 INT ,
    @id2 INT ,
    @id3 INT ,
    @id4 INT ,
    @id5 INT

INSERT  INTO TABLEB
VALUES  ( id1 )
SET @id1 = SCOPE_IDENTITY()
INSERT  INTO TABLEB
VALUES  ( id2 )
SET @id2 = SCOPE_IDENTITY()
INSERT  INTO TABLEB
VALUES  ( id3 )
SET @id3 = SCOPE_IDENTITY()
INSERT  INTO TABLEB
VALUES  ( id4 )
SET @id4 = SCOPE_IDENTITY()
INSERT  INTO TABLEB
VALUES  ( id5 )
SET @id5 = SCOPE_IDENTITY()


UPDATE  TableA
SET     id1fromA = @id1 ,
        id2fromA = @id2 ,
        id3fromA = @id3 ,
        id4fromA = @id4 ,
        id5fromA = @id5