我有一张带有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
答案 0 :(得分: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
BTW您可能希望使用HASHBYTES功能加密密码。您可以在联机丛书中阅读更多相关信息。