zoukankan      html  css  js  c++  java
  • 一个利用sql 语句来实现分页的存储过程

    最近一直在研究存储过程和函数,感觉这趟水有点浑,所以我决定要趟这趟浑水。

    一些是一个sql server的分页存储过程,可以结合页面设计来进行理解
    假设场景有,上一页 下一页两个按钮,排序方式悬着下拉框一个,当前页数文本框一个,每页显示记录数文本框一个,
    好 ,好戏上演:

    CREATE PROCEDURE dbo. Fen Ye
    (
    @Page int,//当前页数
    @RecsPerPage int,//每页显示记录数
    @Sort VARCHAR(255)//排序方式
    )
    AS

    DECLARE @SQL nVARCHAR(4000)

    SET @SQL='SELECT TOP '+CAST(@RecsPerPage AS VARCHAR(20))+' * FROM Customers A WHERE A.ID NOT IN 

    (SELECT TOP '+CAST((@RecsPerPage*(@Page-1)) AS VARCHAR(20))+' ID FROM Customers B ORDER BY ID '+ @Sort +') ORDER BY ID '+ @Sort 

    //此方法借鉴了博客园某位老兄的方法 在此也感谢他的分享

    //此处将top后面只能跟常量

    //我在写的时候 SELECT TOP 10*(2-1) FROM Customers 这句怎么都不能通过,最后查了查说的是top后面只能跟常量
    //所以我就将SQL语句写成了上面的形式,将变量进行拼接

    EXEC sp_ExecuteSql @SQL

    SELECT @Page AS Page
    RETURN @Page

    GO
    //此处返回的@Page可以用于上一页 下一页的操作,返回的@Page可以方便的用于翻页功能,使用于winform和web开发

    //此存储过程还可以进一步扩展,可以将多个表关联查询将查询结果写入临时表,再对临时表进行分页操作。

    //如有疑问请留言

  • 相关阅读:
    python之路---23 模块 os sys pickle json
    Fiddler抓包【7】_次要功能和第三方插件
    Fiddler抓包【6】_Fiddler Script
    Fiddler抓包【5】_Fiddler过滤
    Fiddler抓包【4】_重定向AutoResponder
    Fiddler抓包【3】_设置断点修改
    Fiddler抓包【2】_捕获设置
    Fiddler抓包【1】_介绍及界面概述
    CSS常见兼容问题以及解决办法
    webpack入门文档教程
  • 原文地址:https://www.cnblogs.com/tzy080112/p/1388885.html
Copyright © 2011-2022 走看看