擴(kuò)展性很好的一個分頁存儲過程分享
更新時間:2011年11月02日 01:12:49 作者:
擴(kuò)展性很好的一個分頁存儲過程分享,需要的朋友可以參考下。
這是經(jīng)常用的一個分頁存儲過程 希望大家指點不足
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)
復(fù)制代碼 代碼如下:
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)
相關(guān)文章
數(shù)據(jù)庫觸發(fā)器DB2和SqlServer有哪些區(qū)別
大部分?jǐn)?shù)據(jù)庫語句的基本語法是相同的,但具體到的每一種數(shù)據(jù)庫,又有些不一樣,例如觸發(fā)器,DB2和SQL Server兩種很大的不同。對數(shù)據(jù)庫觸發(fā)器DB2和SqlServer有哪些區(qū)別感興趣的朋友一起看看本文吧2015-11-11Sql Server 數(shù)據(jù)庫索引整理語句,自動整理數(shù)據(jù)庫索引
我們就要定期的對數(shù)據(jù)庫的索引進(jìn)行維護(hù) 我在MSDN上發(fā)現(xiàn)了這個腳本不過其中有些小問題我已經(jīng)修正 大家可以使用這個腳本對數(shù)據(jù)庫的索引進(jìn)行日常維護(hù)2009-07-07sqlserver中創(chuàng)建鏈接服務(wù)器圖解教程
鏈接服務(wù)器在跨數(shù)據(jù)庫/跨服務(wù)器查詢時非常有用(比如分布式數(shù)據(jù)庫系統(tǒng)中),本文將以圖文方式詳細(xì)說明如何利用SQL Server Management Studio在圖形界面下創(chuàng)建鏈接服務(wù)器。2010-09-09解決Windows 10家庭版安裝SQL Server 2014出現(xiàn).net 3.5失敗問題
在安裝SQL Server 2014的過程中,出現(xiàn).net 3.5缺失,導(dǎo)致失敗問題。怎么解決此問題呢?下面小編給大家分享解決Windows 10家庭版安裝SQL Server 2014出現(xiàn).net 3.5失敗問題,一起看看吧2017-04-04數(shù)據(jù)庫日常練習(xí)題,每天進(jìn)步一點點(1)
下面小編就為大家?guī)硪黄獢?shù)據(jù)庫基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07SQLServer批量更新兩個關(guān)聯(lián)表數(shù)據(jù)的方法
這篇文章主要介紹了SQLServer批量更新兩個關(guān)聯(lián)表數(shù)據(jù)的方法,提供了2種關(guān)聯(lián)查詢與更新語句的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-08-08簡單觸發(fā)器的使用 獻(xiàn)給SQL初學(xué)者
簡單觸發(fā)器的使用 獻(xiàn)給SQL初學(xué)者,使用sqlserver的朋友可以參考下。2011-09-09