/**//********************** ****简易分页存储过程*** ****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----输出总行数