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
【编辑推荐】