from old problem can get a storeproc 
the following is I saved
-----------------------------------------------------
//记录集分页的存储过程
一、
/*参数1:select语句。2:字段列表。3:排序字段。4:当前页。5每页数目*/
CREATE procedure Department_pagination 
@SelectStr nvarchar(1000),
@ColumnStr nvarchar (1000),
@OrderStr nvarchar (1000),
@CurrentPage int,
@PageCount int
as
declare @TimeName nvarchar(25)
declare @TableStr nvarchar(1000)select @TimeName = convert(nvarchar(23), getdate(), 121)
set @TimeName = REPLACE(@TimeName, '.', '')
set @TimeName = REPLACE(@TimeName, ':', '')
set @TimeName = REPLACE(@TimeName, '-', '')
set @TimeName = REPLACE(@TimeName, ' ', '')select @TableStr='create table ##Tab' + @TimeName + '(wb int identity,'
exec(@TableStr+@ColumnStr+')')
exec('insert into ##Tab' + @TimeName + ' ' + @SelectStr + ' order by ' + @OrderStr)
exec('select * from ##Tab' + @TimeName + ' where wb between ((' + @CurrentPage + '-1)*' + @PageCount + '+1) and ' + @CurrentPage + '*' + @PageCount + ' order by wb')
exec('drop table ##Tab' + @TimeName)GO
SQL2000测试通过!
二、
7.0没有用过,以下代码在6.5通过:CREATE procedure Department_pagination 
@SelectStr varchar(255),
@ColumnStr varchar (255),
@ColumnStr1 varchar (255),
@OrderStr varchar (255),
@CurrentPage int,
@PageCount int
as
declare @TimeName varchar(25)
declare @TableStr varchar(255)declare @CurrentPageC varchar(10),
        @PageCountC varchar(10)select @CurrentPageC=convert(varchar(10),@CurrentPage),@PageCountC=convert(varchar(10),@PageCount)select @TimeName =convert(varchar(8), getdate(), 112)+datename(hour, getdate())+datename(minute, getdate())+datename(second, getdate())+datename(millisecond, getdate())
select @TableStr='create table ##Tab' + @TimeName + '('exec(@TableStr+@ColumnStr+',wb int identity)')exec('insert into ##Tab' + @TimeName + '('+@ColumnStr1+') ' + @SelectStr + ' order by ' + @OrderStr)exec('select * from ##Tab' + @TimeName + ' 
where wb between ((' + @CurrentPageC + '-1)*' + @PageCountC + '+1) 
and ' + @CurrentPageC + '*' + @PageCountC + ' 
order by wb')exec('drop table ##Tab' + @TimeName)GO
主要问题是整数转字符的问题:
declare @CurrentPageC varchar(10),
        @PageCountC varchar(10)select @CurrentPageC=convert(varchar(10),@CurrentPage),@PageCountC=convert(varchar(10),@PageCount)
三、7下通过if exists(select * from sysobjects where type='p' and name='Department_pagination')
   drop procedure Department_pagination
go
CREATE procedure Department_pagination 
@SelectStr nvarchar(1000),
@ColumnStr nvarchar (1000),
@OrderStr nvarchar (1000),
@CurrentPage int,
@PageCount int
as
declare @TimeName nvarchar(25)
declare @TableStr nvarchar(1000)
declare @CurrentPageC varchar(10),
        @PageCountC varchar(10)select @CurrentPageC=convert(varchar(10),@CurrentPage),
@PageCountC=convert(varchar(10),@PageCount)
select @TimeName = convert(nvarchar(23), getdate(), 121)
set @TimeName = REPLACE(@TimeName, '.', '')
set @TimeName = REPLACE(@TimeName, ':', '')
set @TimeName = REPLACE(@TimeName, '-', '')
set @TimeName = REPLACE(@TimeName, ' ', '')select @TableStr='create table ##Tab' + @TimeName + '(wb int identity,'
exec(@TableStr+@ColumnStr+')')
exec('insert into ##Tab' + @TimeName + ' ' + @SelectStr + ' order by ' + @OrderStr)
exec('select * from ##Tab' + @TimeName + ' where wb between ((' + @CurrentPageC + '-1)*' + @PageCountC + '+1) and ' + @CurrentPageC + '*' + @PageCountC + ' order by wb')
exec('drop table ##Tab' + @TimeName)
GO