想写一个登陆的存储过程,传入帐号和密码,返回0或1(成功或失败)------------------------------------------------------------------------------
create procedure landing
@user varchar(20),
@password varchar(20)
as
declare @result int
set @result = 1
if((select * from duser where duser = @user and dpassword = @password)<>1)
set @result = 0
return @result
------------------------------------------------------------------------------(提示错误)
消息 116,级别 16,状态 1,过程 landing,第 7 行
当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。
------------------------------------------------------------------------------
请教个位大虾 该改呀? 新手 见笑 呵呵

解决方案 »

  1.   

    create procedure landing 
    @user varchar(20), 
    @password varchar(20) 
    as 
    declare @result int 
    set @result = 1 
    if((select * from duser where duser = @user and dpassword = @password) <>1) 
    set @result = 0 
    return @result 
      

  2.   

    create procedure landing
    @user varchar(20),
    @password varchar(20)
    as 
    begin
       if exists(select 1 from duser where duser=@user and dpassword = @password)
         select 1
       else
         select 0
    end
      

  3.   

    create procedure landing 
    @user varchar(20), 
    @password varchar(20) 
    as 
    begin
    if exists(select 1 from duser where duser = @user and dpassword = @password) 
        return 1 
    return 0
    end
    go
      

  4.   

    create procedure landing 
    @user varchar(20), 
    @password varchar(20) 
    as 
    declare @result int 
    set @result = 1 
    if exists (select 1 from duser where duser = @user and dpassword = @password)
    set @result = 0 
    return @result 
    go
      

  5.   

    create procedure landing 
    @user varchar(20), 
    @password varchar(20) 
    as 
    declare @result int 
    set @result = 1 
    if not exists(select * from duser where duser = @user and dpassword = @password)
    set @result = 0 
    return @result 
      

  6.   

    Create procedure landing @user varchar(20), @password varchar(20) 
    As
    Declare @result int 
    set @result = 0
    if Exists (select * from duser where duser = @user and dpassword = @password) 
    set @result = 1 
    return @result 
      

  7.   

    请问 select 0,1 和 return @temp 哪个效率更高一些呀
      

  8.   

    个人习惯问题。
    单值返回用return似乎地道一点。
    以后想修改SP返回其它额外结果集,也不会影响return的值。