存储过程编写,执行调用练习

本文详细解析了一个SQL存储过程loginCheck_Procedure,该过程用于执行用户登录验证。它检查用户名和密码,根据输入的凭证返回登录状态。文章深入探讨了过程的逻辑结构,包括条件判断、变量声明和数据查询。

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

USE [MEP]
GO
/****** Object:  StoredProcedure [dbo].[loginCheck_Procedure]    Script Date: 2019/3/15 9:10:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[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' and @pwd ='1')                
                begin
                    set @isLogin='登录成功!' ;
                    print '登录成功!';                    
                    --执行sql的两种方式,进行其他的查询                    
                    select * from user_info where user_name=@name; -- 语句结束必须使用分号;where (@sd is null or date>@sd) and (@ed is null or date<@ed)                
                    EXEC('select *from medi_classes');
                    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
    end

==========

调用

use MEP;
begin 
            -- 定义局部变量    
            -- declare @ids int;--         
            -- set @updatePwdSQL='update user_info set user_password= '+@pwd+''; --修改成默认的密码
            -- exec( @updatePwdSQL);
            -- exec('select user_name, user_password from user_info'); --查询用户信息
            -- declare name varchar;
            --declare pwd varchar;
            declare @o varchar;
            
            -- 存储过程名称+参数
            exec loginCheck_Procedure 'admin', '1', o;
            print o;
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值