[轉帖]如何準確高效的獲取資料庫新插入資料的主鍵id
阿新 • • 發佈:2019-01-10
例如我們新建了一張表UserInformation,欄位如下Id,為主鍵,自增,其它欄位Name,Pwd,Email
然後我們來執行一個新增插入操作:
insert into UserInformation
(Name,Pwd,Email) values('小明','123','111')
我們想在新增插入資料的時候獲取到插入這條資料的主鍵的值是多少,
解決的方法有兩種:
1、一種是直接輸入某個欄位,然後查詢,程式碼如下:
insert into UserInformation
(Name,Pwd,Email) values('小張','123','111')
select @@identity
插入後獲取,但是這種並不是完全準確的
insert into[Test1].[dbo].[UserInformation]
(Name,Pwd,Email) values('小張','123','111')
select @@identity
涉及到資料庫鎖,如果調整了資料庫鎖,當數量級別特別大,有大量資料併發插入的時候可能會有誤差。
2、另一種方法是在插入的同時進行輸出,程式碼如下:
insert into UserInformation
(Name,Pwd,Email) output inserted.Id values('小明','123','111')
除了主鍵,也可以輸出別的欄位,準確高效。
推薦使用第二種