1. 程式人生 > >如何準確高效的獲取數據庫新插入數據的主鍵id

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

https .com for code 獲取 lec 會有 pwd 大量數據

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

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

推薦使用第二種

  insert
into [DB_Date_Plan].[dbo].[T_userInfo] (userName,userPassword,userEmail) output inserted.Id,inserted.userName values(小明22,12322,11122) update [DB_Date_Plan].[dbo].[T_userInfo] set userName=XXX OUTPUT Inserted.id WHERE userPassword=admin

摘自:https://www.cnblogs.com/zhangchengye/p/5148545.html

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