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