程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server 2000下的通用分頁存儲過程,感覺比較實用就發出來了

SQL Server 2000下的通用分頁存儲過程,感覺比較實用就發出來了

編輯:關於SqlServer
參數注釋得比較清晰,就不另外說明了。

create proc spPagination
(
    @TName      nvarchar(100),       --表名    
    @FName      nvarchar(255),       --字段名   
    @OName      nvarchar(255),       --排序字段名    
    @ODirect    bit=1,               --排序方向,Desc
    @PSize      int=10,              --頁大小    
    @PIndex     int=1,               --頁數    
    @sWhere     nvarchar(1000)='''',   --查詢條件 
    @iCount     int=0 output         --記錄數
)
/**//***********************
* name: spPagination
* author: zzcv
* version: 1.1
* date: 2007-6-9
************************/
as
set nocount on
declare @sSQL   nvarchar(1000)       --臨時變量

set @sSQL=''select @iCount=count(*) from ''+@TName
if @sWhere!=''''
    set @sSQL=@sSQL+'' where ''+@sWhere
exec sp_executesql @sSQL,N''@iCount int out'',@iCount out

set @sSQL=''select top ''+str(@PSize)+'' ''+@FName+'' from ''+@TName+'' where ''+@OName
if @ODirect=0
    set @sSQL=@sSQL+''>=(select max''
else
    set&nbsp;@sSQL=@sSQL+''<=(select min''
set @sSQL=@sSQL+''(''+@OName+'') from (select top ''+str((@PIndex-1)*@PSize+1)+'' ''+@OName+'' from ''+@TName
if @sWhere!=''''
    set @sSQL=@sSQL+'' where ''+@sWhere
set @sSQL=@sSQL+'' order by ''+@OName
if @ODirect=1
    set @sSQL=@sSQL+'' desc''
set @sSQL=@sSQL+'')t)''
if @sWhere!=''''
    set @sSQL=@sSQL+'' and ''+@sWhere
set @sSQL=@sSQL+'' order by ''+@OName
if @ODirect=1
    set @sSQL=@sSQL+'' desc''
exec sp_executesql @sSQL
set nocount off
GO 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved