我想写一个存储过程(定义一个输出参数):当用户名不正确 返回 1  密码错误返回2 密码和用户名都正确 即登录成功 返回3 这个存储过程怎么写?菜鸟不懂 忘高手指点!
create proc Pro_Login
(
@username varchar(50),
@userpwd varchar(50),
@outparam  int output
)
as 
begin
.....怎么写 我想返回outparam参数 1 2 3
end

解决方案 »

  1.   

    --try
    create proc Pro_Login
    (
    @username varchar(50),
    @userpwd varchar(50),
    @outparam int output
    )
    as  
    begin
        if not exists(select 1 from tb where username=@username )
           set @outparam=1
        else if exists(select 1 from tb where username=@username and userpwd=@userpwd)
           set @outparam=3
        else
           set @outparam=2
    end
      

  2.   

    判断 我知道 但怎么设置它的返回值 即outparam的值
      

  3.   

    你用的是什么语言?里面应该也有case when吧?语法差不多。
      

  4.   


    declare @out int
    exec Pro_Login 'lisi','是东方时代90',@out output
    select @out
      

  5.   

    登陆成功和失败不是程序中会用到吗?所以我就问你了。难道你想在登陆SQL Server的时候调用这个存储过程?这么厉害?求教了。呵呵!开个玩笑。
    我说的语言是指你调用这个存储过程的开发语言。
      

  6.   

    呵呵 我理解错了 后台asp.net
      

  7.   


    create proc Pro_Login
    (
    @username varchar(50),
    @userpwd varchar(50),
    @outparam int output
    )
    as  
    begin
        if not exists(select 1 from tb where username=@username )
           set @outparam=1
        else if exists(select 1 from tb where username=@username and userpwd=@userpwd)
           set @outparam=3
        else
           set @outparam=2
    end
      

  8.   

    create proc Pro_Login
    (
    @username varchar(50),
    @userpwd varchar(50),
    @outparam int output
    )
    as  
    begin
        if not exists(select 1 from tb where username=@username )
           set @outparam=1
        else if exists(select 1 from tb where username=@username and userpwd=@userpwd)
           set @outparam=3
        else
           set @outparam=2
        select @outparamend
    最后的那个select语句不能省,否则返回结果有问题。(测试在C#中)
      

  9.   

    create proc Pro_Login
    (
    @username varchar(50),
    @userpwd varchar(50),
    @outparam int output
    )
    as  
    begin
     select @outparam=
    case
    when username!=@username then 1
    when userpwd!=@userpwd then 2
    when username=@username and userpwd=@userpwd then 3
    end
    from tb 
       
    end
      

  10.   

    CREATE PROCEDURE test_decide
    @username VARCHAR(50),
    @pwd VARCHAR(50),
    @pramter INT
    AS
    BEGIN
    IF NOT EXSITS (SELECT 1 FROM 表 WHERE usernam=@username)
        SET @pramter=1
        ELSE IF NOT EXSITS (SELECT 1 FROM 表 WHERE username=@username AND pwd=@pwd)
        SET @pramter=2
        ELSE 
        SET @pramter=3
    END