CREATE proc fy
@rows bigint,
@page bigint
as
declare @sum bigint
if (@rows=0)
begin
raiserror('Please input rows>0 !',16,1)
return
end
if (@page=0)
begin
raiserror('Please input page>0 !',16,1)
return
end
begin
begin transaction
set @sum=@rows*@page
set rowcount @sum
select *
into #t
from 表
order by id asc
select *
into #b
from #t
order by id desc
set rowcount @rows
select *
into #c
from #b
order by id desc
select *
from #c
order by id asc
drop table #t
drop table #b
drop table #c
commit transaction
end
GO
CREATE PROCEDURE usp_1 ( @beid int,--开始id
@endid int, --结束id
@table varchar(100)) --表明
as
declare @sql varchar(8000)
--if @endid>@beid or @table is null return
select @sql ='select top '+ convert(varchar(10),@endid-@beid) +
+' * from '+ @table
+' where id >=(select max(id) '
+' from(select top '+ convert(varchar(10),@beid) + ' * '
+' from ' + @table + ' order by id) t '
+' ) '
+' order by id'
exec (@sql)
go
exec usp_1 500,600,'psm_employee'
go
drop procedure usp_1