SQL Server存储过程未返回值

时间:2019-05-07 22:57:16

标签: sql sql-server tsql stored-procedures

我有一个包含一些数据的表,并且编写了一个存储过程以返回行数:

ALTER PROCEDURE [dbo].[SP_User_Case_Answer_Found]
    @userID BIGINT,
    @visitID BIGINT
AS
    RETURN 
        SELECT COUNT(*) 
        FROM User_Case_Answer
        WHERE userID = @userID
          AND pvisitID = @visitID
GO

当我执行它时,我得到:

DECLARE @return_value int

EXEC    @return_value = [dbo].[SP_User_Case_Answer_Found]
        @userID = 26,
        @visitID = 5

SELECT  'Return Value' = @return_value
GO

但是返回值= 0?我确定表格中包含数据,请问有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

将查询括在括号中。

name="txtCostoTabla[0]"

db<>fiddle

答案 1 :(得分:0)

从存储过程中的return语句中删除SELECT。不需要如果您试图短路而不返回结果集,或者返回诸如return之类的状态代码,则可以使用RETURN 1

   ALTER PROCEDURE [dbo].[SP_User_Case_Answer_Found]
        @userID BIGINT
        ,@visitID BIGINT
    AS
           SELECT COUNT(*) 
           FROM User_Case_Answer
           WHERE userID = @userID
               AND pvisitID = @visitID;
    GO

调用该过程时也不需要绑定返回值。

EXEC [dbo].[SP_User_Case_Answer_Found] @userID = 26, @visitID = 5

如果使用输出参数,则需要返回值参数。 T-SQL RETURN