获得sql server自增字段的值

数据库 SQL Server
sql server自增字段大家经常会用得到,下面为您介绍一个获得sql server自增字段的值的方法,希望对您能够有所帮助。

sql server自增字段相信大家都有一定程度的了解,那么,插入一条记录后如何获得当前插入记录的sql server自增字段的值呢?

经过实验,得如下结论:

select DISTINCT @@IDENTITY as iden from FaWen

解释:上述语句对 SQL SERVER 的一个会话,也就是一条连接,返回该连接***一条插入记录得到的sql server自增字段的值。

假设有3个程序,分别连接SQL SERVER,有三个连接。3个程序都向同一个表依顺序插入数据,得到的值分别是1、2、3,那么,只要3个程序对SQL的连接还保持着,***个程序使用上述语句,将得到1,而不是3,第二个程序将得到2,也不是3。第三个程序得到3。

因此,用上述语句可以得到自己刚才插入记录的自增字段的值,不怕其它程序的并发插入操作。

上述语句中,使用 DISTINCT  的原因是,虽然返回的值是当前连接插入操作得到的***值,但返回的相同值的记录有多条。条数等于当前多个连接一共插入的记录数。

实验方法:启动三个 Query analyzer 查询分析器,分别执行插入操作后再做上述取sql server自增字段值的操作
 
利用
rs.addnew
增加一条记录时,如何同时获取自增1字段ID的当前值,而无须再进行一次查询来获取!因为我立即要用到该ID值,如果在增加记录完毕后再利用select   id   进行一次查询无疑会使系统受限,有办法吗?
 
如果你能保证id=行数的话可以用
rs.moveend   '当指针在***一条记录时count是全部行数
rs.count
 

 

 

【编辑推荐】

重置sql server标识列

T-SQL语句创建SQL Server索引

带您了解sql server临时表

SQL SERVER临时表的语法

SQL SERVER恢复的方法

责任编辑:段燃 来源: 新浪博客
相关推荐

2010-06-28 09:59:47

SQL Server自

2010-09-28 16:14:14

SQL Server自

2010-07-09 12:49:41

SQL Server自

2010-06-18 13:47:21

SQL Server数

2010-08-31 08:38:55

SQL Server

2010-11-12 10:38:24

SQL Server自

2011-03-21 12:58:26

Oracle自增字段

2010-04-26 11:55:48

Oracle自增字段

2010-04-09 09:28:30

Oracle自增字段

2010-10-08 15:42:39

MySQL设置自增字段

2010-07-05 11:26:31

2009-07-02 12:30:00

标识值SQL Server

2010-06-28 16:36:13

SQL Server

2010-11-01 14:40:39

DB2自增字段

2010-11-29 11:39:11

Sybase自增字段

2010-07-13 10:28:41

SQL Server

2010-10-08 10:18:26

MySQL自增字段

2010-05-31 11:34:00

MySQL自增字段

2010-07-15 10:37:15

SQL Server默

2023-12-26 01:09:28

MySQL存储释放锁
点赞
收藏

51CTO技术栈公众号