我有一个包含一些数据的表,并且编写了一个存储过程以返回行数:
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?我确定表格中包含数据,请问有人可以帮忙吗?
答案 0 :(得分:3)
答案 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