SQL:利用存储过程实现分页

来源:互联网 发布:京东数据罗盘 编辑:程序博客网 时间:2024/05/01 02:46
 use master
go
if(exists(select * from sysdatabases where name = 'pageviewDemo' ))
  drop database pageviewDemo
go
create database pageviewDemo
go
use pageviewDemo
go
if(exists(select * from sysobjects where name = 'student' and type = 'U'))
 drop table student
go
create table student
(
 SID int identity(10001,1) primary key,
        SName varchar(50) not null,
        Email varchar(50) not null check (Email like('%@%.%.%'))
)
go
declare @num int
declare @stuName varchar(50)
set @num = 1
while(@num < 500)
begin
      set @stuName = rtrim(ltrim(cast(@num as varchar(10))))
      declare @len int
      set @len = len(@stuName)
      while(@len < 5)
      begin
          set @stuName = '0'+@stuName
          set @len = @len+1
      end
      set  @stuName = 'S'+ @stuName
      insert into student values (@stuName,@stuName+'@sina.com.cn')
      set @num =@num+ 1
end
go
select * from student
go
if(exists(select * from sysobjects where name ='Pro_pageview' and type = 'P' ))
 drop procedure Pro_pageview
go
create procedure Pro_pageview
@currentpage int ,
@tablename varchar(50)
as
   declare @sql varchar(500)
   set @sql  = 'select top 10 * from '+ @tablename
   set @sql  =@sql +'  where SID not in (select top '+ cast(10*(@currentpage-1)  as varchar(20))
   set @sql  =@sql + ' SID from '+ @tablename+')'
   execute(@sql)
go
Pro_pageview 2,'student'
原创粉丝点击