最近在写一个个人的日记本程序,今天做了日记的存储过程分页。研究了半天,参考了多方资料终于写出来了。发表出来纪念一下。
实现的特殊一点的功能是可以传入where条件,这样的话如果需要什么样的过滤条件可以直接在DAL层进行设置,实现灵活性。
create proc procDiary --获取日记列表的分页存储过程 @pageSize int =12, -- @pageIndex int=1, --页码序号 @totalCount int output, --总记录数 @diaryWhere varchar(255) as declare @strSql varchar(500); set @strSql = 'set nocount on select top ('+convert(varchar(50),@pageSize)+') fid,fcid,ft opic al,faddDate,feditDate into #diary from t_Diary where Fid not in(select top (('+convert(varchar(50),@pageIndex)+'-1)*'+convert(varchar(50), @ pageSize)+') fid from t_Diary)' + convert(varchar(255),@diaryWhere) + 'order by FaddDate desc,Fid desc select * from #diary drop table #diary set nocount off'; exec(@strSql);