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

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

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

【 tulaoshi.com - ASP 】

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

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

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

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

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

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

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

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

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

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

下面说说如何在.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

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

延伸阅读
我想很多人都知道,在oracle里面,存储过程里面可以传入数组(如int[]),也就是说,可以传多条记录到数据,从而一起更新。减少数据库的请求次数。 但SqlServer呢?bulk Insert这个很多人都知道,我也知道,但可惜,我从来没用过,只有导数据的时候才会考虑,但导数据DTS不是更方便吗? 手头的一个项目,有几个功能,每次需要更新N(N1000)条...
标签: 花卉
依米花是一种神奇植物。传说中生长在非洲的戈壁滩上,依米花非常奇特,每朵花有四和五片花瓣,一片花瓣一种颜色,红、黄、蓝、白,煞是娇艳绚丽。中间的花蕊好似羞涩的姑娘。下面让我们来看看依米花图片展示及介绍。 一、依米花简介 依米花是一种生活在“心灵鸡汤”想象中的神奇植物。不存在于现实的自然界中。也作伊米...
《仙剑奇侠传4》通关一次得到所有的称号心得 会员:天录 <原创 很多玩家都反映通关一遍不能将所有的称号都获得,但我用我的实践证明这并非完全不可能。现将我的心得与大家分享。 由于每个称号都是以非常非常变态的方式获得,要想获得所有的称号难度可想而知.对于想获得所有的称号的玩家须做好心理准备,而且你必须满足以下条件:1。有超乎寻常...
家用空调的过滤网和散热片上会积聚大量灰尘、污垢、胺、碱等化学物质及细菌、真菌、病毒、螨虫等可引起诸多疾病的有害生物。这些污染来源于灰尘、细菌、废气、皮屑、粉尘等。空调是有害生物繁殖、释放、传播的载体,也是导致人群感染与过敏的重大隐患。 所以,空调清洗是健康度夏的重要保障。新机首次使用前、旧机在换季或闲置一段时间后的再次...
标签: 奶嘴 安抚奶嘴
奶嘴多久换一次 奶嘴一般情况下二至三个月需更换一次,每次给宝宝使用奶嘴时记得用开水消毒,这样可以防止细菌滋生,保证宝宝的健康。 奶嘴的使用寿命 奶嘴的使用寿命根据种类的不同也存在一定的差别,硅胶奶嘴的使用寿命一般在两个月左右,橡胶奶嘴是以纯天然橡胶为材料制作而成的,乳头十分接近,一般情况下使用3-4周就需要更...

经验教程

939

收藏

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