存储过程中的返回计数

use*_*995 6 sql t-sql sql-server stored-procedures

我写了一个存储过程来返回一个计数.但我得到了一个空值.任何人都可以告诉我存储过程中的问题在哪里.

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[ValidateUser]
@UserName varchar(50),
@Password varchar(50),
@Num_of_User int output

AS 
BEGIN
  SET NOCOUNT ON;

  SELECT @Num_of_user =COUNT(*) 
    FROM login
   WHERE username = @UserName 
     AND pw = @Password

  RETURN

END
Run Code Online (Sandbox Code Playgroud)

atb*_*btg 9

您将值设置为变量@num_of_user.在查询后添加select @num_of_user

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


ALTER PROCEDURE [dbo].[ValidateUser]
    @UserName varchar(50),
    @Password varchar(50),
    @Num_of_User int output

AS
BEGIN
    SET NOCOUNT ON;
     SELECT @Num_of_user =COUNT(*) 
         FROM login
         WHERE username=@UserName AND pw=@Password

     SELECT @Num_of_user
return
END
Run Code Online (Sandbox Code Playgroud)


Ben*_*nCr 2

它实际上并不返回计数,它是一个输出参数。

更改存储过程以返回 @num_of_user 或检查输出参数而不是返回值。