sql - 存储过程中的返回计数

标签 sql sql-server tsql 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

最佳答案

您正在将值设置到变量@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

关于sql - 存储过程中的返回计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5144584/

相关文章:

c# - 将sql返回保存在一个字符串中

tsql - SQL删除具有重复值的行,同时保留一个

sql-server - 如何检查我当前是否是 SQL 2000/2005/2008 的数据库所有者

sql - 查找不不同的行

sql - Mysql查询: How do I select ALL THE VOTES from ALL USERS FROM TODAY only when premium = 'yes' ?

sql - 查询以返回具有重复字符串/数字的所有记录

sql - "%%DatabaseEx"在 SQL 中起什么作用?

sql - plpgsql 中采用 bigint 的 pseudo_encrypt() 函数

sql-server - 为什么事实表中的 datekey 总是 INT?

sql-server - 如何防止sql语句被零除错误