主页 > 知识库 > 扩展性很好的一个分页存储过程分享

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

热门标签:兰州语音外呼系统运营商 如何做地图标注图铺 数字匠心电销机器人 没听见电话机器人帮你接 al智能电话机器人 最新人工智能电销机器人 成都电话外呼系统一般多少钱 银川高频外呼回拨系统多少钱 陕西电销外呼系统好用吗
这是经常用的一个分页存储过程 希望大家指点不足
复制代码 代码如下:

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)

标签:邢台 通化 辽源 本溪 朔州 巴彦淖尔 盐城 宜春

巨人网络通讯声明:本文标题《扩展性很好的一个分页存储过程分享》,本文关键词  扩展性,很,好的,一个,分页,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《扩展性很好的一个分页存储过程分享》相关的同类信息!
  • 本页收集关于扩展性很好的一个分页存储过程分享的相关信息资讯供网民参考!
  • 推荐文章