① sqlserver2008 使用存儲過程添加數據後,怎樣獲得添加的主鍵值
如果是自增列主鍵的話,一般來說,插入後查詢最大值就可以了
select max(pkID) from tablename;
還有一種方法
select @@identity
② 如何獲取資料庫新插入數據的主鍵id
例如我們新建了一張表T_User,欄位如下u_id,主鍵,為標示符,user_name......然後我們來執行一個新增插入操作:
insert into T_User(user_name,user_password,user_email,user_ip)
values('admin','123456','[email protected]','58.20.158.20') ;
有一天,我們想在新增插入數據的時候獲取到插入這條數據的u_id的值是多少,我們知道從MSSQL2005以後新增了一個output,用來輸入某個值,我們就可以利用它來實現
解決的方法有兩種:
1、一種是直接輸入某個欄位,如:
insert into T_User(user_name,user_password,user_email,user_ip) output inserted.u_id //output
inserted.u_id一定要放在 values之前,不能放在sql語句的最後面,不然是出錯的,inserted是固定的,你想輸入當前插入的某個欄位就在後面接這個欄位即可,我們想獲得的是u_id所以是inserted.u_id
values('admin','123456','[email protected]','58.20.158.20') ;
2、另一種方法是使用@@identity,@@identity是系統內置的一個全局變數,其作用就是輸入最後一次的標示符,我們可以兩步走也可以通過一步實現
一步實現的代碼如下
insert into T_User(user_name,user_password,user_email,user_ip) output @@identity
values('admin','123456','[email protected]','58.20.158.20') ;