sql server動態分頁

2022-06-23 10:27:14 字數 1985 閱讀 1774

use ryplatformmanagerdb

goset ansi_nulls, quoted_identifier on

gocreate proc [dbo].[web_pageview]

@tablename nvarchar(

2000), --表名

@returnfields nvarchar(

1000) = '

*', --查詢列數

@pagesize int = 10, --每頁數目

@pageindex int = 1, --當前頁碼

@where nvarchar(

1000) = '', --查詢條件

@orderby nvarchar(

1000), --排序字段

@pagecount int output, --頁碼總數

@recordcount int output --記錄總數

with encryption as

--設定屬性

set nocount on

--變數定義

declare @totalrecord int

declare @totalpage int

declare @currentpagesize int

declare @totalrecordforpageindex int

begin

if @where is null set @where=n''

--記錄總數

declare @countsql nvarchar(

4000

)

if @recordcount is null

begin

set @countsql='

select @totalrecord=count(*) from

'+@tablename+'

'+@where

execute sp_executesql @countsql,n

'@totalrecord int out

',@totalrecord out

endelse

begin

set @totalrecord=@recordcount

end

set @recordcount=@totalrecord

set @totalpage=(@totalrecord-1)/@pagesize+1

set @currentpagesize=(@pageindex-1)*@pagesize

--返回總頁數和總記錄數

set @pagecount=@totalpage

set @recordcount=@totalrecord

--返回記錄

set @totalrecordforpageindex=@pageindex*@pagesize

exec (

'select *

from (select top '

+@totalrecordforpageindex+''

+@returnfields+

', row_number() over ('

+@orderby+

') as pageview_rowno

from

'+@tablename+ ''

+ @where +

') as temppageviewtable

where temppageviewtable.pageview_rowno >

'+@currentpagesize)

endreturn

0go

SQL Server 分頁查詢

ps,此文是純個人筆記 公司裡乙個專案裡用到了一種資料庫分頁查詢的方式 1 定義乙個臨時的table 這個table有乙個自增的之間id,和要查的資料表的主鍵id 2 再一次查詢,用id在分頁數段來and 一下結果 具體操作如下 定義個臨時表 temptable declare temptable ...

Sql Server分頁語句

分頁方案一 利用not in和select top分頁 語句形式 select top 10 from testtable where id not in select top 20 id from testtable order by id order by id select top 頁大小 f...

sql server實現分頁

sqlserver 的資料分頁 假設現在有這樣的一張表 create table test id int primary key not null identity,names varchar 20 然後向裡面插入大約1000條資料,進行分頁測試 假設頁數是10,現在要拿出第5頁的內容,查詢語句如下...