如何准確高效的獲取數據庫新插入數據的主鍵id


 

例如我們新建了一張表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')

除了主鍵,也可以輸出別的字段,准確高效。

推薦使用第二種


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM