存储过程

    存储过程—就像数据库中运行方法(函数)

    和C#里的方法一样,由存储过程名/存储过程参数组成/可以有返回结果。

    前面学的if else/while/变量/insert/select 等,都可以在存储过程中使用

    优点:

    执行速度更快 – 在数据库中保存的存储过程语句都是编译过的
    允许模块化程序设计 – 类似方法的复用
    提高系统安全性 – 防止SQL注入
    减少网络流通量 – 只要传输 存储过程的名称
    系统存储过程
    由系统定义,存放在master数据库中
    名称以“sp”开头或”xp”开头

    创建存储过程:

    定义存储过程的语法
    CREATE PROC[EDURE] 存储过程名
    @参数1 数据类型 = 默认值 OUTPUT,
    @参数n 数据类型 = 默认值 OUTPUT
    AS
    SQL语句
    参数说明:
    参数可选
    参数分为输入参数、输出参数
    输入参数允许有默认值
    EXEC 过程名 [参数]
    ———————————例—————————————
    if exists (select from sys.objects where name=’usp_GroupMainlist1’)
    drop proc usp_GroupMainlist1
    go
    create proc usp_GroupMainlist1
    @pageIndex int, —页数
    @pageSize int, —条数
    @pageCount int output—输出共多少页
    as
    declare @count int —共多少条数据
    select @count =count(
    ) from [mainlist] —获取此表的总条数
    set @pageCount=ceiling(@count*1.0/@pageSize)

    select from
    (select
    ,row_number() over(order by [date of booking] desc) as ‘num’ from [mainlist]) as t
    where num between(@pageSize(@pageIndex-1)+1) and @pageSize@pageIndex
    order by [date of booking] desc
    —————————————————————————————————————————————-
    —调用
    declare @page int
    exec usp_GroupMainlist1 1,100,@page output
    select @page