SQLServer 2005通用分頁儲存過程
通過SQLServer 2005之後新加入的ROW_NUMBER()函式進行分頁:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
-- Author:
-- Description:
-- =============================================
Create PROCEDURE [dbo].[ClientNewsPager]
@talbeName varchar(255)='', -- 表名
@getFields varchar(1000)='*', -- 需要返回的列
@orderBy varchar(255)='', -- 排序的欄位名
@PageSize int=15, -- 頁尺寸
@PageIndex int=1, -- 頁碼,從1開始
@doCount bit=0, -- 返回記錄總數, 非 0 值則返回
@whereStr varchar(1500)='' -- 查詢條件 (注意: 不要加 where)
AS
BEGIN
declare @rowResult int
Begin Tran
declare @strSQL varchar(5000)
declare @startRowIndex int
declare @maximumRows int
set @startRowIndex = (@PageIndex - 1) * @PageSize
set @maximumRows = @startRowIndex + @PageSize
if(@doCount!=0)
begin
if @whereStr !=''
set @strSQL = 'select id from ' + @talbeName + ' where '+ @whereStr
else
set @strSQL = 'select id from ' + @talbeName
end
else
begin
if(@whereStr!='')
begin
set @strSQL = 'SELECT ' + @getFields + ' FROM (SELECT ROW_NUMBER() OVER (ORDER BY ' + @orderBy + ') AS RowsNum,' + @getFields + ' FROM ' + @talbeName + ' where ' + @whereStr + ') AS TMP WHERE (RowsNum > ' + str(@startRowIndex) + ' AND RowsNum <= ' + str(@maximumRows) + ')'
end
else
begin
set @strSQL = 'SELECT ' + @getFields + ' FROM (SELECT ROW_NUMBER() OVER (ORDER BY ' + @orderBy + ') AS RowsNum,' + @getFields + ' FROM ' + @talbeName + ') AS TMP WHERE (RowsNum > ' + str(@startRowIndex) + ' AND RowsNum <= ' + str(@maximumRows) + ')'
end
end
exec(@strSQL)
Set @rowResult = @@ROWCOUNT
If @@Error <> 0
Begin
RollBack Tran
Return -1
End
Else
Begin
Commit Tran
Return @rowResult
End
END
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-621852/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 通用分頁儲存過程儲存過程
- SqlServer-儲存過程分頁SQLServer儲存過程
- 支援DISTINCT的通用分頁儲存過程(SQL2005)儲存過程SQL
- sqlserver儲存過程實現多表分頁SQLServer儲存過程
- SQL SERVER 2005分頁儲存過程SQLServer儲存過程
- 拋磚引玉——通用分頁儲存過程儲存過程
- 解密SQLServer2005儲存過程解密SQLServer儲存過程
- 分頁儲存過程儲存過程
- SQL 分頁儲存過程SQL儲存過程
- sql儲存過程分頁SQL儲存過程
- SQLSERVER儲存過程SQLServer儲存過程
- SQL 2000 2005通用儲存過程SQL儲存過程
- 通用的SQL Server資料庫查詢分頁儲存過程SQLServer資料庫儲存過程
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- oracle儲存過程分頁程式碼Oracle儲存過程
- (SQL Server)分頁的儲存過程SQLServer儲存過程
- 簡單的儲存過程分頁儲存過程
- 簡單的分頁儲存過程儲存過程
- 兩種SQL分頁方法儲存過程和遊標儲存過程SQL儲存過程
- Sqlserver中的儲存過程SQLServer儲存過程
- 分頁控制元件及儲存過程控制元件儲存過程
- [MSSQL]mssql海量高效分頁儲存過程SQL儲存過程
- ORACLE高效分頁儲存過程程式碼Oracle儲存過程
- 基於ROWCOUNT的分頁儲存過程儲存過程
- 使用SQL Server 2005的新函式構造分頁儲存過程SQLServer函式儲存過程
- sqlserver 常用儲存過程集錦SQLServer儲存過程
- 使用SQL Server2005的新函式構造分頁儲存過程SQLServer函式儲存過程
- 使用儲存過程實現分頁列印 (轉)儲存過程
- SqlServer儲存過程的建立與使用SQLServer儲存過程
- ADO中sqlserver儲存過程使用SQLServer儲存過程
- 實現小資料量和海量資料的通用分頁顯示儲存過程儲存過程
- 儲存過程分頁 Ado.Net分頁 EF分頁 滿足90%以上儲存過程
- 【SqlServer】清除過期資料的儲存過程SQLServer儲存過程
- SQL Server 儲存過程的經典分頁(轉)SQLServer儲存過程
- asp.net利用儲存過程分頁程式碼ASP.NET儲存過程
- SQLServer查詢使用者儲存過程SQLServer儲存過程
- ADO中sqlserver儲存過程使用 (轉)SQLServer儲存過程
- SqlServer儲存過程應用二:分頁查詢資料並動態拼接where條件SQLServer儲存過程