博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分页存储过程
阅读量:4941 次
发布时间:2019-06-11

本文共 1541 字,大约阅读时间需要 5 分钟。

CREATE   PROCEDURE   [dbo].[getPage]

@pageSize int,              --页尺寸
@currentPage int,           --当前页
@tableFields varchar(2000), --返回的字段
@tableName   varchar(200),  --表名
@orderString varchar(1000), --排序字符串
@whereString varchar(1000), --条件字符串
@IsReCount   bit = 0        -- 返回记录总数, 非 0 值则返回
AS
BEGIN

if   @currentPage   <   1   set   @currentPage   =   1

DECLARE   @strSql   varchar(2000)

DECLARE   @strOrder varchar(2000)
DECLARE   @strWhere varchar(2000)

set   @strOrder   =   REPLACE(RTRIM(LTRIM(@orderString)), 'order   By ', ' ')

if   @strOrder   !=   ''  set   @strOrder   =   '   order   By   '   +   @strOrder

set   @strWhere   =   REPLACE(RTRIM(LTRIM(@whereString)), 'where ', ' ')

if   @strWhere   !=   ''
     set   @strWhere   =   '   where   '   +   @strWhere
else
     set   @strWhere   =   '   where  1=1  '  

if   @pageSize   =   0

    set   @strSql   =   'select   '   +   @tableFields   +   '   from   '   +   @tableName   +   @strWhere   +   @strOrder
else
    if   @currentPage   =   1
        set   @strSql   =   'select   top( '   +   Str(@pageSize)   +   ')   '   +   @tableFields   +   '   from   '   +   @tableName   +   @strWhere   +   @strOrder
    else
        begin
        set   @strSql   =   'select   top( '   +   Str(@pageSize)   +   ')   *   from   (select   top( '   +   Str(@pageSize   *   @currentPage)   +   ')   '   +   @tableFields   +   ',   ROW_NUMBER()   OVER   ( '
        set   @strSql   =   @strSql   +   @strOrder
        set   @strSql   =   @strSql   +   ')   As   RowNumber   From   '   +   @tableName
        set   @strSql   =   @strSql   +   @strWhere
        set   @strSql   =   @strSql   +   ')   as   t   where   t.RowNumber   >   '   +   Str(@pageSize   *   (@currentPage   -   1))
        set   @strSql   =   @strSql   +   @strOrder
        end

if @IsReCount != 0

    set @strSql = 'select count(*) as Total from [' + @tableName + ']  ' + @strWhere

exec(@strSql)

END

转载于:https://www.cnblogs.com/yuqi2008/archive/2009/09/28/1575880.html

你可能感兴趣的文章
数据清空js清空div里的数据问题
查看>>
Fortran中的指针使用
查看>>
移动终端app测试点总结
查看>>
14-6-27&28自学内容小结
查看>>
JSP
查看>>
---
查看>>
(第一组_GNS3)自反ACl
查看>>
hdu--1258--Sum It Up(Map水过)
查看>>
Spring @DeclareParents 的扩展应用实例
查看>>
VS2012更新Update1后帮助查看器无法打开
查看>>
Android 文件的读取和写入
查看>>
高校表白APP-冲刺第四天
查看>>
outlook 设置163邮箱
查看>>
mysql优化——show processlist命令详解
查看>>
Solr服务器搭建
查看>>
画世界怎么用光影_世界绘画经典教程:水彩光影魔法教程
查看>>
win+rsync+php,跨平台的fswatch+rsync同步备份
查看>>
vue2 cdn 加载html,vue项目中使用CDN加载
查看>>
数组转集合踩坑
查看>>
node.js的异步I/O、事件驱动、单线程
查看>>