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

    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

  • 相关阅读:
    FCKeditor 2.3 在ASP.NET中的设置和使用
    如何去掉重复记录的Sql语句写法
    asp.net如何去掉HTML标记
    Asp.net中如何删除cookie?
    怎样得到select所有option里的值
    HttpModule是如何工作的
    Asp.net2.0下的表单验证Cookieless属性
    FreeTextBox实现机制
    ajax实现动态从数据库模糊查询显示到下拉框中(ajax方法返回Dataset的例子)
    新浪博客自动发表程序,请勿用于非法用途
  • 原文地址:https://www.cnblogs.com/cwy173/p/1575155.html
Copyright © 2011-2022 走看看