您好,欢迎访问一九零五行业门户网

MSSQL简单分页存储过程

/**//**********************
****简易分页存储过程***
****author:knife*****
****data:08-05-07******
**********************/
create procedure listpagetext
(
@pagerows int,        --每页行数    
@pageindex int,        --索引
@tab nvarchar(500),    --表名
@keyid nvarchar(50),    --主键
@total nvarchar(200),    --条件
@sort nvarchar(50),    --排序
@kid nvarchar(200),    --列名
@rows int output    --总页数
)
as
begin
set nocount on
declare 
@befrows int,
@sql nvarchar(1000)
set @befrows=@pagerows*(@pageindex-1)
set @sql=''select top ''+cast(@pagerows as nvarchar(50))+'' ''+@kid+'' from ''+@tab+'' 
where ''+@total+'' and ''+@keyid+'' not in (select top ''+cast(@befrows as nvarchar(50))+''
 ''+@keyid+'' from ''+@tab+'' where ''+@total+'' order by ''+@sort+'' ) order by ''+@sort+''''
exec (@sql)
print @sql
-------总行数------
set @sql=n''select @rows=count(*) from ''+@tab+'' where ''+@total+''''
exec sp_executesql @sql,n''@rows int out'',@rows out
end
go
------------------------------测试------------------------------
declare @aa int
exec listpagetext 每页行数(例:10),页码(例:1),''表名(例:''table1'')'',''主键(例:''tid'')'',''条件(例:''1=1'')'',''排序(例:''tadddate desc'')'',''列名(例:''*'')'',@aa output
select @aa ----输出总行数
如有什么问题,可以留言!
其它类似信息

推荐信息