如何得到上一次插入记录后自动产生的ID

2016-01-29 19:51 103 1 收藏

如何得到上一次插入记录后自动产生的ID,如何得到上一次插入记录后自动产生的ID

【 tulaoshi.com - ASP 】

如果你使用存储过程的话,将非常简单,代码如下:SET @NewID=@@IDENTITY

说明:
在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值。若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL。若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值。如果此语句激发一个或多个执行产生标识值的插入操作的触发器,则语句执行后立即调用 @@IDENTITY 将返回由触发器产生的最后的标识值。若 INSERT 或 SELECT INTO 语句失败或大容量复制失败,或事务被回滚,则 @@IDENTITY 值不会还原为以前的设置。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

在返回插入到表的 @@IDENTITY 列的最后一个值方面,@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 函数类似。

@@IDENTITY 和 SCOPE_IDENTITY 将返回在当前会话的所有表中生成的最后一个标识值。但是,SCOPE_IDENTITY 只在当前作用域内返回值,而 @@IDENTITY 不限于特定的作用域。

IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回任何会话和任何作用域中为特定表生成的标识值。有关更多信息,请参见 IDENT_CURRENT。

示例
下面的示例向带有标识列的表中插入一行,并用 @@IDENTITY 显示在新行中使用的标识值。

INSERT INTO infoclass (infoclass) VALUES ('Accountant')

这时我们插入一条记录,下面我们使用语句得到标识值:
SELECT @@IDENTITY AS 'Identity'
我的表infoclass中有个ID字段,它原的值是14插入新的记录后自动产生了值15,因些,上面命令执行后返回值:15。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

下面说说如何在.NET中得到插入记录后的ID值。

因为Sqlserver为我们提供了多重查询的功能,这大大方便了我们的工作。请看:

Dim sql As String = "INSERT INTO jobs (job_desc,min_lvl,max_lvl) VALUES ('A new job', 25, 100);" & _
"SELECT job_id FROM jobs WHERE job_id = @@IDENTITY"
Dim cmd As New SqlCommand(sql, cn)

上面可以看到,SqlCommand可以执行多条语句,各语句之间用“;"分隔。第一条执行插入,第二条则返回最后插入记录的ID值,因为查询返回的是单列的,并且值也是唯一的,所以可以使用ExecuteScalar获得:
Dim jobId As Integer = CInt(cmd.ExecuteScalar())A

来源:https://www.tulaoshi.com/n/20160129/1510240.html

延伸阅读
我想很多人都知道,在oracle里面,存储过程里面可以传入数组(如int[]),也就是说,可以传多条记录到数据,从而一起更新。减少数据库的请求次数。 但SqlServer呢?bulk Insert这个很多人都知道,我也知道,但可惜,我从来没用过,只有导数据的时候才会考虑,但导数据DTS不是更方便吗? 手头的一个项目,有几个功能,每次需要更新N(N1000)条...
标签: 花卉
依米花是一种神奇植物。传说中生长在非洲的戈壁滩上,依米花非常奇特,每朵花有四和五片花瓣,一片花瓣一种颜色,红、黄、蓝、白,煞是娇艳绚丽。中间的花蕊好似羞涩的姑娘。下面让我们来看看依米花图片展示及介绍。 一、依米花简介 依米花是一种生活在“心灵鸡汤”想象中的神奇植物。不存在于现实的自然界中。也作伊米...
标签: 衣服
文胸 清洗周期: 穿2-3次,穿了2-3次后,及时看起来不脏也应该清洗了,我们身体分泌的汗液和油脂会浸入衣物纤维中。 如何清洗: 我们在清洗的时候,建议使用肥皂冷水手洗,不要用力的搓拧。 小窍门: 需要注意的是文胸搭扣背后的绒面是用来清洗罩杯的。 内裤 清洗周期: 需要及时清洗,不要“隔夜”。因为内裤上的分泌物大多数都是...
《仙剑奇侠传4》通关一次得到所有的称号心得 会员:天录 <原创 很多玩家都反映通关一遍不能将所有的称号都获得,但我用我的实践证明这并非完全不可能。现将我的心得与大家分享。 由于每个称号都是以非常非常变态的方式获得,要想获得所有的称号难度可想而知.对于想获得所有的称号的玩家须做好心理准备,而且你必须满足以下条件:1。有超乎寻常...
标签: 奶嘴 安抚奶嘴
奶嘴多久换一次 奶嘴一般情况下二至三个月需更换一次,每次给宝宝使用奶嘴时记得用开水消毒,这样可以防止细菌滋生,保证宝宝的健康。 奶嘴的使用寿命 奶嘴的使用寿命根据种类的不同也存在一定的差别,硅胶奶嘴的使用寿命一般在两个月左右,橡胶奶嘴是以纯天然橡胶为材料制作而成的,乳头十分接近,一般情况下使用3-4周就需要更...

经验教程

459

收藏

50
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部