獲得sql server自增字段的值
sql server自增字段相信大家都有一定程度的了解,那么,插入一條記錄后如何獲得當前插入記錄的sql server自增字段的值呢?
經(jīng)過實驗,得如下結(jié)論:
select DISTINCT @@IDENTITY as iden from FaWen
解釋:上述語句對 SQL SERVER 的一個會話,也就是一條連接,返回該連接***一條插入記錄得到的sql server自增字段的值。
假設有3個程序,分別連接SQL SERVER,有三個連接。3個程序都向同一個表依順序插入數(shù)據(jù),得到的值分別是1、2、3,那么,只要3個程序?qū)QL的連接還保持著,***個程序使用上述語句,將得到1,而不是3,第二個程序?qū)⒌玫?,也不是3。第三個程序得到3。
因此,用上述語句可以得到自己剛才插入記錄的自增字段的值,不怕其它程序的并發(fā)插入操作。
上述語句中,使用 DISTINCT 的原因是,雖然返回的值是當前連接插入操作得到的***值,但返回的相同值的記錄有多條。條數(shù)等于當前多個連接一共插入的記錄數(shù)。
實驗方法:啟動三個 Query analyzer 查詢分析器,分別執(zhí)行插入操作后再做上述取sql server自增字段值的操作
利用
rs.addnew
增加一條記錄時,如何同時獲取自增1字段ID的當前值,而無須再進行一次查詢來獲??!因為我立即要用到該ID值,如果在增加記錄完畢后再利用select id 進行一次查詢無疑會使系統(tǒng)受限,有辦法嗎?
如果你能保證id=行數(shù)的話可以用
rs.moveend '當指針在***一條記錄時count是全部行數(shù)
rs.count
【編輯推薦】