Heim >Datenbank >MySQL-Tutorial >MSSQL简单分页存储过程

MSSQL简单分页存储过程

WBOY
WBOYOriginal
2016-06-07 17:46:441038Durchsuche

 



/**********************
****简易分页存储过程***
****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 ----输出总行数
如有什么问题,可以留言!
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:棘手的(SQL)面试题Nächster Artikel:SQL经典面试题及答案