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

    USE [XZCDB]
    GO

    /****** Object:  StoredProcedure [dbo].[NTP_Page]    Script Date: 11/12/2014 13:11:11 ******/
    SET ANSI_NULLS OFF
    GO

    SET QUOTED_IDENTIFIER OFF
    GO





    CREATE  PROCEDURE [dbo].[NTP_Page]
    @IndexField varchar(50)='id',
    @AllFields varchar(2500)='*', --需要返回的列
    @TablesAndWhere varchar(2500)='', -- 表名和条件,from后面的,不要from,要一条where
    @OrderFields varchar(255)='',-- 排序的字段名
    @PageSize int = 10, -- 页尺寸
    @PageIndex int = 1, -- 页码
    @RecordCount int output,
    @PageCount int output
    AS
    if @PageSize < 1
    set @PageSize = 10
    declare @strSQL nvarchar(4000) -- 主语句
    set @strSQL = 'select @RecordCount=count('+ @IndexField +') from '+ @TablesAndWhere
    exec sp_executesql @strSQL,N'@RecordCount int output',@RecordCount out
    if @RecordCount % @PageSize = 0
    set @PageCount = @RecordCount/@PageSize
    else
    set @PageCount = @RecordCount/@PageSize+1
    if(@PageIndex > @PageCount)
    set @PageIndex = @PageCount
    if @PageIndex < 1
    set @PageIndex = 1
    if @PageIndex = 1
    set @strSQL='select top ' + CAST(@PageSize as nvarchar) + ' ' + @AllFields + ' from '+ @TablesAndWhere + ' ' + @OrderFields
    else
    begin
    declare @start int
    set @start = (@PageIndex - 1) * @PageSize
    set @strSQL= 'select top ' + CAST(@PageSize as nvarchar) + ' ' +  @AllFields  + ' from ' +  @TablesAndWhere + ' and '+ @IndexField  + ' not in (select top ' + CAST(@start as nvarchar) + ' ' + @IndexField + ' from ' + @TablesAndWhere + ' ' + @OrderFields +') '+ @OrderFields
    end
    exec sp_executesql @strSQL





    GO


  • 相关阅读:
    VBS操作Excel常见方法
    判断文件和文件夹是否存在
    vbs获取自身文件名,不带格式,不带路径
    vbs,修改文件名
    UiPath字符串函数的介绍和使用
    linux各个目录的作用
    Linux下设置memcached访问IP
    python单继承与多继承
    粘包,文件传输
    网络编程
  • 原文地址:https://www.cnblogs.com/wahaccp/p/4091973.html
Copyright © 2011-2022 走看看