龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Sql Server开发 >

MSSQL简单分页存储过程

时间:2013-01-03 18:08来源:未知 作者:admin 点击:
分享到:
/**/ /* ********************* ****简易分页存储过程*** ****author:knife***** ****data:08-05-07****** ********************* */ create procedure listpagetext ( @pagerows int , -- 每页行数 @pageindex int , -- 索引 @tab nvarchar (

 



/**********************
****简易分页存储过程***
****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 ----输出总行数
如有什么问题,可以留言!
精彩图集

赞助商链接