use ryplatformmanagerdbgoset 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頁的內容,查詢語句如下...