扩展性很好的一个分页存储过程分享

来源:asp之家 时间:2011-11-03 17:04:16 

这是经常用的一个分页存储过程 希望大家指点不足 

代码如下:


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)

标签:分页,存储过程
0
投稿

猜你喜欢

  • HTML5本地存储初探(一)

    2010-03-07 15:42:00
  • 制作一个更漂亮一些的多选列表框

    2007-10-16 13:04:00
  • sql存储过程获取汉字拼音头字母函数

    2011-11-03 16:58:05
  • ASP 3.0中的新特性

    2008-02-27 13:28:00
  • 简单的在线调试服务端js代码的asp源码

    2008-04-23 13:30:00
  • JavaScript 与 ActionScript 3.0 交互的一些问题

    2008-01-27 12:20:00
  • 学习ASP.NET八天入门:第六天

    2007-08-07 13:48:00
  • ASP读取日期单日期自动补零函数代码

    2011-02-20 10:39:00
  • MySQL查询优化

    2009-03-09 14:41:00
  • asp清理缓存的代码

    2011-03-09 11:16:00
  • 一个ASPJPEG组件的asp类 CLASS

    2008-03-11 12:22:00
  • RDFa介绍——构建更友好的web页面

    2009-09-19 17:01:00
  • FSO组件之驱动器操作asp源码

    2010-05-03 10:59:00
  • HTML头部属性全接触

    2007-09-05 19:09:00
  • ADO组件之插入数据记录

    2008-10-08 12:21:00
  • 用Dreamweaver设计Wordpress留言板教程(一)

    2010-03-17 15:44:00
  • RHEL下架设MYSQL集群

    2008-12-24 16:05:00
  • 如何处理好网页色彩搭配

    2007-08-10 13:22:00
  • AspJpeg 2.0组件使用教程(GIF篇)

    2008-12-16 19:37:00
  • SQL SERVER的字段类型介绍

    2008-05-23 13:27:00
  • asp之家 网络编程 m.aspxhome.com