程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 如何取得剛剛插入sql server 自增長的id值?

如何取得剛剛插入sql server 自增長的id值?

編輯:關於SqlServer
對於SQL Server 2000來說,它提供了兩個全新的函數(IDENT_CURRENT,SCOPE_IDENTITY),並且改進了@@IDENTITY的不足.當你插入新記錄後,可以調用函數:
PRINT IDENT_CURRENT('table') '這將獲得新的IDENTITY值,不管數據庫中是不是有記錄添加(這就避免了@@IDENTITY的連接限制)
或者:PRINT SCOPE_IDENTITY() '這將獲得在當前存儲過程,觸發器等其他程序創建的最新記錄的IDENTITY值.
而全局變量@@IDENTITY有一個問題,當對一張表執行insert時,如果該表有觸發器程序在執行插入操作,然後,接著在另一張表中插入記錄,這樣返回@@IDENTITY值就是第二張表的IDENTITY值。
如果你用的不是SQL Server 2000,你最好一個簡單的存儲過程來解決這個問題。
CREATE PROCEDURE myProc
@param1 INT
AS
BEGIN
SET NOCOUNT ON
INSERT INTO someTable
(
intFIEld
)
VALUES
(
@param1
)
SET NOCOUNT OFF
SELECT NEWID = @@IDENTITY
END
在ASP中你可以這樣做:
<%
fakeValue = 5
set conn = Server.CreateObject("ADODB.Connection")
conn.open ""
set rs = conn.execute("exec myProc @param1=" & fakeValue)
response.write "New ID was " & rs(0)
rs.close: set rs = nothing
conn.close: set conn = nothing
%>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved