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

解决方案 »

  1.   

    declare @sqlstr1 nvarchar(1000)
    declare @name as varchar(10)
    select @sqlstr1='select name'  
    declare c1 cursor for
    select distinct aa from A order by aa
    open c1
    fetch next from c1 into @name
    while @@fetch_status=0
    begin
          select @sqlstr1=@sqlstr1+',max(case aa when '''+@name+''' then counter else 0 end) as '+@name
         fetch next from c1 into @name
    end
    close c1
    deallocate c1 select @table1='##'+rtrim(convert(varchar(10),@@spid))+'1'
    select @sqlstr1=@sqlstr1+' into '+@table1+' from A group by name'exec(@sqlstr1)
    if @@error<>0
       returnexec('drop table '+@table1)
    ================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]
      

  2.   

    更正:
    select @sqlstr1=@sqlstr1+',max(case aa when '''+@name+''' then counter else 0 end) as '+@name改为:
    select @sqlstr1=@sqlstr1+',max(case aa when '''+@name+''' then aa else null end) as '+@name
    ================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]