sql 獲取新插入的id值的三種方法

2021-08-24 17:25:42 字數 904 閱讀 3073

最近在公司做demo時,遇到了sql server,獲取表資料的剛剛插入的id值,經過查詢sql提供了三種方法對最後插入的id進行查詢:

@@identity

ident_current(tablename)

scope_identity()

注:使用時,可以as ***,可以在下方rs.getstring()shi使用

三種區別如下:

@@identity 得到的是跨域最新id

ident_current(tablename)得到的是指定表的最新id

scope_identity得到的是當前資料庫中的最後插入表的id

例子:資料說明:

database1_table:hrmdepartment

database2_table:wzlcus/wzllinkman

以此在所屬資料庫下執行以下語句:

insert wzlcus(cname) values('ceshi');--假設結果 1

insert wzllinkman(lcid) values('6');--假設結果 3

insert hrmdepartment(departmentmark,departmentname,supdepid) values('測試','測試','1');--假設結果 10

然後回到database2下:

select  @@identity,跨域,所以得到10

select ident_current('wzlcus'),不跨域,返回指定表的最後的id,插入得到結果1

select scope_identity() ,不跨域,但是未指定表,所以得到結果本資料庫的最後插入的id,3

但是,在高併發訪問下,以上都會有問題,在大量資料面前,系統提供的函式,都是渣渣

JDBC獲取新插入記錄id的三種方法

在一對多的關聯操作中,通常在一方插入記錄後,需要獲取到當前記錄的id,以方便進行多方的插入操作。要解決這一問題,在jdbc中至少有三種不同的實現方法 1.在插入語句後新增一條查詢,利用resultset來得到id號 psmt con.preparestatement insert into orde...

利用JDBC獲取新插入記錄id的三種方法

在一對多的關聯操作中,通常在一方插入記錄後,需要獲取到當前記錄的id,以方便進行多方的插入操作。要解決這一問題,在jdbc中至少有三種不同的實現方法 1.在插入語句後新增一條查詢,利用resultset來得到id號 psmt con.preparestatement insert into orde...

關於SQL三種獲取自增長的ID方法

關於sql三種獲取自增長的id方法 sql server中的三種獲得自增長id的方法 這個功能比較常用,所以記下來以防自己忘掉。scope identity 返回插入到同一作用域中的 identity 列內的最後乙個 identity 值。乙個作用域就是乙個模組 儲存過程 觸發器 函式或批處理。因此...