首页 > 代码库 > 分页存储过程
分页存储过程
表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
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,缺点:调试麻烦,把所有的业务逻辑都放在了数据库中,改动的时候麻烦。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。