0

我有一个带有 uid、用户名和密码的表以及检查登录的过程

create procedure getlogin(@username varchar(50),@password varchar(20),@granted int output)
as 
begin 
    if exists (select top 1 uid 
               from user_detail 
               where username = @username and password = @password)
       set @granted=1
    else
       set @granted=-1
end

但我总是得到-1

4

1 回答 1

1

你的代码对我来说似乎很好。这是一个关于如何调用和测试代码的示例:

create table user_detail
(   uid int primary key,
    username varchar(50),
    password varchar(20)
    )
go
insert user_detail values(1,'a','b')
go
create procedure getlogin(@username varchar(50),@password varchar(20),@granted int output)
as 
begin 
    if exists (select top 1 uid 
               from user_detail 
               where username = @username and password = @password)
       set @granted=1
    else
       set @granted=-1
end
go
declare @granted int
exec getlogin 'a','a', @granted output
select @granted
exec getlogin 'a','b', @granted output
select @granted

顺便说一句,您可能想使用 HASHBYTES 函数加密您的密码。您可以在联机丛书中阅读更多相关信息。

于 2013-06-19T20:45:15.567 回答