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

     表T_phone中字段:Id, Haoduan, Adress, Type, Quhao

    1,ROW_NUMBER()是个开窗函数,它可以与聚合函数一起用,就算删除表中的列,排序也不会乱

    select *,ROW_NUMBER() over(order by id) as 排序 from T_Phone

    2,那么分页的sql语句就是这样,假如一页十行,查询第三页

    1 select * from 
    2 (
    3     select *,ROW_NUMBER() over(order by id) as 排序 from T_Phone 
    4 )  as tbl where tbl.Id between 2*10+1 and 3*10
    分页的sql语句

    3,分页的存储过程就可以这样写

    1     CREATE PROC usp_phone
    2 @index int=1,
    3 @pageSize int=10
    4 AS
    5 BEGIN
    6 SELECT * FROM(SELECT ROW_NUMBER()OVER (ORDER BY id)AS rownum,*from T_phone) AS T
    7 WHERE rownum BETWEEN (@index-1)*@pageSize+1 and @index *@pageSize 
    8 END
    分页存储过程

    执行存储过程:exec usp_phone 10,10

    4,存储过程优点

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

    6,缺点:调试麻烦,把所有的业务逻辑都放在了数据库中,改动的时候麻烦。

  • 相关阅读:
    VPS服务器 基本配置
    WCF 系列 → HelloWord
    ASP.NET MVC3 常用整理
    ASP.NET MVC3 过滤器 Filter
    NVelocity系列 → NVelocity配置详解
    网站安全检测 Web 安全测试工具
    ASP.NET MVC3.0 静态化实现
    CSS3的动画泡沫按钮
    SQL 大数据优化
    用友备份失败,超时己过期
  • 原文地址:https://www.cnblogs.com/tuibian/p/3737576.html
Copyright © 2011-2022 走看看