zoukankan      html  css  js  c++  java
  • 扩展性很好的一个分页存储过程

    这是经常用的一个分页存储过程  希望大家指点不足
    USE [a6756475746]
    GO
    /****** Object:  StoredProcedure [dbo].[tbl_order_SearchWhereAndPage]    Script Date: 11/01/2011 09:37:39 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[tbl_order_SearchWhereAndPage]
    	@AllCount 	int OUTPUT,
    	@PageIndex 	int,
    	@PageSize 	int ,
    	@minDate   datetime,
    	@maxDate   datetime
    AS
    begin
    	DECLARE @PageLower int 
         set @PageLower=@PageSize * @PageIndex 
    	DECLARE @PageUpper int 
         set @PageUpper= @PageLower + @PageSize - 1
    
    	DECLARE @SearchSQL nvarchar(4000)
         set @SearchSQL='SELECT * ,( ROW_NUMBER() OVER (ORDER BY [ID] DESC) -1 ) AS RowNumber FROM tbl_order WHERE  (1=1) '
    	DECLARE @SearchSQLCount nvarchar(4000)
         set @SearchSQLCount='SELECT @count=Count(*) FROM tbl_order WHERE (1=1) '
    	declare @Result   [varchar](5000)
         set @Result=''
    	
    	if @minDate>convert(datetime,'1900-1-2')
    	begin
    		set @Result=@Result+' and oDeliveryDate >= '''+convert(varchar(20),@minDate)+'''' 
    	end 
    	if @maxDate > convert(datetime,'1900-1-2')
    	begin
    		set @Result=@Result+' and oDeliveryDate <= '''+convert(varchar(20),dateadd(dd,1,@maxDate))+'''' 
    	end 
    	set @SearchSQLCount=@SearchSQLCount+@Result
    	set @SearchSQL=@SearchSQL+@Result
    
    	SET @SearchSQL = 'WITH t AS (' + @SearchSQL +' )
    	SELECT * FROM  t
    	WHERE [RowNumber] BETWEEN '+ convert(varchar(50),@PageLower) +'  AND '+ convert(varchar(50),@PageUpper) + '
    	ORDER BY RowNumber '
    
    	exec (@SearchSQL)
    
    	exec sp_executesql @SearchSQLCount ,N'@count as int out' ,@AllCount out 
    
    	print @SearchSQL
    	
    print @AllCount
    end
    exec (@Result)
    

      

  • 相关阅读:
    关于cookie的一点知识
    一点简单的关于ASP.NET下载
    一个小小小问题
    复习linq
    拾遗一些关于存储过程
    一般处理程序(下)
    复习一下递归
    复习JS和jQuery
    一点关于Ajax和一个等待图标的显示
    C#开发BIMFACE系列14 服务端API之批量获取转换状态详情
  • 原文地址:https://www.cnblogs.com/monian/p/2231090.html
Copyright © 2011-2022 走看看