zoukankan      html  css  js  c++  java
  • 存储过程

    存储过程的概念

    存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。

    存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。

    由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。同时由于在调用时只需用提供存储过程名和必要的参数信息,所以在一定程度上也可以减少网络流量、简单网络负担。

    1、 创建语法

    create proc | procedure pro_name
    [{@参数数据类型} [=默认值] [output],
    {@参数数据类型} [=默认值] [output],
    ....

    ]
    as
    SQL_statements

    2、分页存储过程

    if (object_id('pro_stu', 'P') is not null)
    drop proc pro_stu
    go
    create procedure pro_stu(
    @pageIndex int,
    @pageSize int
    )
    as
    declare @startRow int, @endRow int
    set @startRow = (@pageIndex - 1) * @pageSize +1
    set @endRow = @startRow + @pageSize -1
    select * from (
    select *, row_number() over (order by id asc) as number from student
    ) t
    where t.number between @startRow and @endRow;

    exec pro_stu 2, 2;

    3、另一种分页机制

    create proc hehe(
    @page int,
    @size int)
    as
    select top (@size) id,Bran_parentNumber,Bran_number,Bran_name from base_branch
    where id not in(select top(@page*@size) id from Base_Branch order by id ASC)
    order by id ASC

    exec hehe 3,6

    4、动态字段查询

    create procedure queryStuNameById
    (
    @Type varchar(10),--输入参数
    @TrueName varchar(10) output --输出参数
    )
    as
    DECLARE @strSQL NVARCHAR(1000)
    SET @strSQL=
    ' SELECT '
    +@TrueName
    +' FROM sys_user'
    +' WHERE Type='+@Type
    exec(@strSQL)
      • 以上即为基础的存储过程使用
  • 相关阅读:
    Linux下安装漏洞扫描工具Nessus
    【译】使用OpenVAS 9进行漏洞扫描
    MD5小彩虹表
    获取某个版本软件存在的漏洞信息
    【译】使用chage来管理Linux密码过期时间的七个例子
    [转]Centos 安装Sublime text 3
    Nessus扫描策略
    Nginx使用笔记
    SSH 公钥登录
    MySQL加密
  • 原文地址:https://www.cnblogs.com/yinxuejunfeng/p/9686260.html
Copyright © 2011-2022 走看看