扩展性很好的一个分页存储过程分享
2011-11-02 00:00
417 查看
这是经常用的一个分页存储过程 希望大家指点不足
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)
相关文章推荐
- 扩展性很好的一个分页存储过程
- 分享一个分页存储过程
- 分享一个分页存储过程
- 分享一个我自己写的支持多条件组合查询的分页存储过程
- 一个很好的分页存储过程
- 一个将数据分页的存储过程
- 分享一个自己写的简单的javascript分页组件
- 分享一个完整的Mybatis分页解决方案
- 最近找到一个很好的 API CODE 网站,分享一下
- 一个分页存储过程
- 一个很好的开发分享的网站
- 最近学习框架做了一个小网站,基本功能都实现了但是分页没办法用框架思想实现,查了资料找到一个不错的,修改了下分享下
- 一个通用的数据分页的存储过程
- 关于FP-Growth 算法一个很好的ppt-学习分享
- 分享一个PHP分页代码
- 向你推荐一个特别好用的分页存储过程
- 又一个通用分页存储过程,支持表别名,多表联合查询SQL语句
- 以前写的一个分页存储过程 嗮一下