sqlserver存储过程创建

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;

你可能感兴趣的:(数据库)