例如我們新建了一張表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')
除了主鍵,也可以輸出別的字段,准確高效。
推薦使用第二種