@tblname varchar(255), -- 表名
@fldname varchar(255), -- 欄位名
@ordertype bit = 0, -- 設定排序型別, 非 0 值則降序
@iscount bit=0, -- 設定排序型別, 非 0 值則降序
@strwhere varchar(3000) ='', -- 查詢條件 (注意: 不要加 where)
@startindex varchar(255),
@maxrows varchar(255)
as declare @strsql varchar(3000) -- 主語句
declare @strcount varchar(3000) -- 返回資料的總條數語句
declare @strorder varchar(3000) -- 排序型別語句
if @ordertype != 0
begin
set @strorder = ' order by ' + @fldname +' desc'
end
else
begin
set @strorder = ' order by ' + @fldname +' asc'
end
set @strsql ='select * from (select *, row_number() over ('+ @strorder +') as pos from ' + @tblname + ') as t where t.pos > ('+ @startindex +') and t.pos <'+ @maxrows
set @strcount ='select count(*) as total from ' + @tblname + ' as count'
if @strwhere !=''
begin
set @strsql ='select * from (select *, row_number() over ('+ @strorder +') as pos from ' + @tblname + ' where ' + @strwhere + ') as t where t.pos > ('+ @startindex +') and t.pos <'+ @maxrows
set @strcount ='select count(*) as total from ' + @tblname + ' as count where ' + @strwhere
endif @iscount!=0 ----按需要返回資料的總條數
begin
exec (@strcount)
endexec (@strsql)
-------------寒冰製作---------------
SQL2005 分頁儲存過程
最近在使用sqlserver2005的資料庫編碼,查到有一個row number order by 欄位 的函式,通過該函式進行分頁非常的方便,請大家看看我寫的分頁儲存過程。分頁儲存過程 create procedure dbo proc testpage 表名 tablename nvarchar...
SQL2005分頁儲存過程
author sql2005分頁儲存過程htl258 tony date 2009 09 22 13 00 50 version microsoft sql server 2008 sp1 10.0.2531.0 intel x86 mar 29 2009 10 27 29 enterprise e...
SQL 2005 儲存過程分頁
create procedure dbo p pagetest sql nvarchar max sql語句不包括排序 curpage int,當前頁 pagerows int,頁面尺寸 order nvarchar 20 排序欄位 ordertype nvarchar 10 排序型別倒序desc或...
SQL2005分頁查詢
1 通過select top進行分頁查詢 查詢原理 需要查詢第n頁時,首先取到前n頁的所有資料,然後排除前n 1頁的資料,就是第n頁的資料 create procedure getdatawithpage pageindex int 1,頁碼 pagesize int 20,頁尺寸 as begin...
SQL 2005 多表分頁儲存過程
region 返回所有職位物件 帶分頁 region 返回所有職位物件帶分頁 當前頁 每頁顯示數 返回 頁數 返回總項數 物件集合 public static listgetallmodel int curpage,int size,ref int pagesize,ref int totalsiz...