CREATE procedure loginCheck_Procedure(
@name varchar(10),-- 輸入的名字,默认是输入参数
@pwd varchar(10) ,-- in 密碼
@isLogin varchar(10) output -- login state,输入输出参数
)
as
declare @updatePwdSQL varchar(100);
declare @pwdNum int=120;
--##### 登录检查
begin
-- 检查输入的用户名称是否为空
if (@name<>'')
begin
-- 检查是否为管理员
if(@name='admin')
begin
--执行sql的两种方式
select * from user_info where user_name=@name; -- 语句结束必须使用分号
EXEC('select * from patient');
begin
--获取密码长度
set @pwdNum= len(@pwd);
if(@pwdNum> 1)
begin
print 'num大于1,长度为:'+ convert(varchar,@pwdNum); --in转化varchar
-- return @pwdNum; --return 返回不执行储存过程
end
else if(@pwdNum= 1)
begin
print 'num等于1';
-- return '密码长度不够1';
-- return 1;
end
else
begin
-- return '输入的不是数字字符串!';
return 8888;
end
end
end
else
-- 把登录状态赋值给输出参数
set @isLogin='登录成功!' -- set赋值
print '登录成功!';
end
else
-- 輸出錯誤的login infom
begin
set @isLogin='登录失败!'
print '请输入用户名称!';
end
-- ###### 修改密码
begin
-- 定义局部变量
declare @ids int;--
set @updatePwdSQL='update user_info set user_password= '+@pwd+''; --修改成默认的密码
exec( @updatePwdSQL);
exec('select user_name, user_password from user_info'); --查询用户信息
end
end
execute loginCheck_Procedure 'admin','1' ,'';
SELECT *FROM user_info;