存储过程,它检索最后一列

时间:2014-06-13 09:24:57

标签: sql-server stored-procedures

我想创建一个存储过程来检索指定表的最后一个IDENTITY。以下是我到目前为止所做的工作。

CREATE PROCEDRE spGetLast
AS
BEGIN
    SELECT id
    FROM users
    WHERE ID = IDENT_CURRENT('users')
    SELECT id as returnvalue
END

2 个答案:

答案 0 :(得分:0)

你的方式应该有用。

不确定你为什么问,但这里有一点更新的proc(你也可以使用函数代替proc):

CREATE PROC dbo.spGetLast
AS 
BEGIN
    DECLARE @ret int;

    SELECT @ret = ID
    FROM users 
    WHERE ID = IDENT_CURRENT('users');

    IF (@ret IS NULL) 
        SET @ret = 0;

    RETURN @ret;
END;

这是用法:

DECLARE @SelectedValue INT
EXEC @SelectedValue = dbo.spGetLast

SELECT @SelectedValue

答案 1 :(得分:0)

您可以简化它,只需执行以下操作,因为您没有使用output parameter

SELECT IDENT_CURRENT('users')

这必须在代码中处理,以期对存储过程的调用返回单个值。

否则你应该像output parameter这样使用:

CREATE PROCEDURE spGetLast
@LastUserId int OUTPUT
AS
BEGIN
    SELECT @LastUserId = IDENT_CURRENT('users')
    RETURN
END