存储过程的经历!!!

本文介绍了一次在存储过程中遇到的登录验证问题,通过调整变量类型解决了密码验证不准确的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天写了一个简单的存储过程,目的是用来检验登录信息的!本以为是件非常简单的事情,可是没想到………… 开始的时候写了个存储过程:如下:

ALTER PROCEDURE  [dbo].[CheckLogin]   

@Uid varchar, @Pwd varchar, @Count int  output

 AS begin

 if exists (SELECT Name from Login where (Name=@Uid) and (Pwd=@Pwd))

set @Count=1

else if exists(select Name from Login where Name=@Uid)

set @Count=2

else set @Count=0  

end 

可是调试的时候出现了这样的情况:在输入了正确的用户名之后,在输入正确的密码,再此密码之后加上任意的字符, 然后点击登录,此时密码是错误的,但是还是能过验证通过!为什么呢?调试,一遍又一遍的调试!终于找到了错误的原因了啊:那就是在存储过程中没有给变量加上大小啊,这样写应该:

ALTER PROCEDURE  [dbo].[CheckLogin]  

 @Uid varchar(50), @Pwd varchar(50), @Count int  output

AS

begin

 if exists (SELECT Name from Login where (Name=@Uid) and (Pwd=@Pwd))

set @Count=1

else if exists(select Name from Login where Name=@Uid)

set @Count=2

else set @Count=0

end  

这样运行就可以了啊!

真不知道为什么啊,折腾了大半天啊!

呵呵!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值