>  기사  >  데이터 베이스  >  MSSQL简单分页存储过程

MSSQL简单分页存储过程

WBOY
WBOY원래의
2016-06-07 17:46:441014검색

 



/**********************
****简易分页存储过程***
****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 ----输出总行数
如有什么问题,可以留言!
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.