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

    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

  • 相关阅读:
    超详细的sql2005图解安装全过程【图文】SQL Server 2005 安装图解(图文详解+全程截图)
    C# WinForm控件的拖动和缩放的实现
    C#中使用组合键事件,c#2005中组合键的应用
    C#判断Shift,Alt,Ctrl是否被按下,确定所按下的组合键
    详解破解VS2010正式版的方法(仅供技术交流)
    C# listview中显示imagelist中的图片
    序列化
    收集一些常用的正则表达式【转载】
    iframe+ajaxSubmit结合续篇(判断图片(文件)大小,上传图片,验证码刷新)
    完美去掉a标签和按钮加背景图片阴影
  • 原文地址:https://www.cnblogs.com/yuqi2008/p/1575880.html
Copyright © 2011-2022 走看看