SQL里如何得到批量插入数据后生成的新的ID

SQL里如何得到批量插入数据后生成的新的ID,第1张

直接获取是有难度的,但是可以间接获取,比如先建一张表用来存储这一批数据的批次ID

DECLARE @BATCHID INT

CREATE TABLE TBL_BATCH

(

    ID int identity(1,1),

    [DESC] varchar(255)

)

--要进行批量插入时,先插入一条数据到TBL_BATCH表中

INSERT INTO TBL_BATCH VALUES '这批数据的作用:XXX'

--获取批次ID

SET @BATCHID = @@IDENTITY

--批量插入数据时将@BATCHID一同插入。注:需要先添加一列BATCHID列。

INSERT INTO XXX

SELECT @BATCHID,XXX,XXX,XXX UNION

SELECT @BATCHID,XXX,XXX,XXX

这样根据@BATCHID就可以查到这批数据的所有自增ID了

首先数据表中要有一个子增长的字段。字段类型设置成:

然后,在该字段的属性里边会有一个序列:

继续,通常我们都这样来插入数据:

query("insert into ......")

紧接着执行这样的sql,就会得到刚才插入的id值

result = query("select currval('address_address_id_seq')")// 加粗部分就是上边红框内的序列

这次查询返回的结果一般是这样的:

我们需要的部分也主要是红框内的数据,这样我们想要的结果就出来了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9994570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存