SQL Server分頁顯示資料的儲存過程

2021-08-26 10:18:07 字數 1477 閱讀 6769

create table student--建表

( sno varchar(10) primary key,

sname varchar(10),

*** char(2),

age int,

dept varchar(10)

)--插入資料

insert into student values('1001','張三','男',20,'計算機')

insert into student values('1002','李四','男',18,'數學')

insert into student values('1003','趙六','女',19,'計算機')

insert into student values('1004','李斯','男',20, '數學')

insert into student values('1005','張三三','男',20,'計算機')

insert into student values('1006','李四四','男',18,'數學')

insert into student values('1007','趙六六','女',19,'計算機')

insert into student values('1008','李斯斯','男',20, '數學')

insert into student values('1009','李又斯','男',20, '數學')

go--建立sql server中的分頁顯示儲存過程,@tn:表名,@cnt:每頁記錄數;set rowcount 、exec的應用

create proc splitpages(@tn nvarchar(30)='student', @cnt int=3)

asbegin

if object_id('temp') is not null drop table temp

set @tn=quotename(@tn)--quotename函式使字串成為有效的識別符號

if object_id(@tn) is null

begin

print 'please check table name'

return

endexec ('select * into temp from ' + @tn)--執行動態sql

set rowcount @cnt

select * from temp

delete from temp

while @@rowcount>0

begin

select * from temp

delete from temp

endset rowcount 0

drop table temp

endgo

exec splitpages--使用預設引數值呼叫

exec splitpages 'student', 5--使用自定義引數呼叫

Sql Server 資料分頁

1 引言 在列表查詢時由於資料量非常多,一次性查出來會非常慢,就算一次查出來了,也不能一次性顯示給客戶端,所以要把資料進行分批查詢出來,每頁顯示一定量的資料,這就是資料要分頁。2 常用的資料分頁語法 先查出 top 300000,再聚合取這個集合中最大的id1,再過濾 id大於id1的集合 上圖中使...

分頁顯示資料

oracle的分頁查詢可以利用rowid偽列。db2的分頁查詢可以利用row number over 聚合函式。mysql有limit。access彷彿先天缺陷,僅提供了top n。那如何利用top來實現分頁查詢呢?假設在access中有表t1 create table t1 tc1 varchar...

SQLServer 的資料分頁

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