/**//********************** ****简易分页存储过程*** ****author:knife***** ****data:08-05-07****** **********************/ createprocedure listpagetext ( @pagerowsint, --每页行数 @pageindexint, --索引 @tabnvarchar(500), --表名 @keyidnvarchar(50), --主键 @totalnvarchar(200), --条件 @sortnvarchar(50), --排序 @kidnvarchar(200), --列名 @rowsint output --总页数 ) as begin set nocount on declare @befrowsint, @sqlnvarchar(1000)
set@befrows=@pagerows*(@pageindex-1) set@sql=''select top ''+cast(@pagerowsasnvarchar(50))+''''+@kid+'' from ''+@tab+'' where ''+@total+'' and ''+@keyid+'' not in (select top ''+cast(@befrowsasnvarchar(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@aaint exec listpagetext 每页行数(例:10),页码(例:1),''表名(例:''table1'')'',''主键(例:''TID'')'',''条件(例:''1=1'')'',''排序(例:''TAddDate DESC'')'',''列名(例:''*'')'',@aa output select@aa----输出总行数
如有什么问题,可以留言!