2013-01-17 69 views

回答

2

但是你需要知道的限制(這是由SCOPE_IDENTITY克服)的,您可以使用@@ IDENTITY在SQL Server 2000

。請參閱這篇文章的解釋http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity-of-record/

編輯

MSDN http://msdn.microsoft.com/en-us/library/aa259185%28v=sql.80%29.aspx說,SCOPE_IDENTITY 繳費在SS2000,所以電子書籍,你用它來代替。

你可以通過執行SET @<var> = SCOPE_IDENTITY()

此鏈接http://www.mikesdotnetting.com/Article/54/Getting-the-identity-of-the-most-recently-added-record對如何使用SCOPE_IDENTITY

+0

而且我應該如何從查詢返回呢? – horgh

+0

+1 - 鏈接 – horgh

0

我有工作答案是通過一個存儲過程中插入行更多的一些例子得到的值,如OUTPUT關鍵字在ms sql server 2000中不可用。另外,出於相同的原因,我不得不放棄inserted,並使用scope_identity

嗯,它看起來有點像這樣:

CREATE PROCEDURE [dbo].[InsertRow]  
    @pDate datetime, 
    @pId int OUTPUT 
AS 
BEGIN 
    SET NOCOUNT ON; 

    INSERT INTO nl$RegisterRace ([Date],...) 
    VALUES (@pDate,...); 

    SET @pId = scope_identity(); 
END 
+0

如果您不想使用OUTPUT參數,也可以使用RETURN SCOPE_IDENTITY()返回ID。 – DeanOC