日期:2014-05-17  浏览次数:20390 次

在线等,求大神帮写个存储过程
要求
传入参数 : 表名,字段(多字段),排序字段,分页数
按照传入参数查询出结果  在线等  谢谢
------最佳解决方案--------------------
create proc p_page
@tablename varchar(50),
@field varchar(2000),
@order varchar(200),
@page varchar(10),--每页多少条
@pagenum varchar(10) --页码
as
begin
declare @sql varchar(5000)
set @sql='select '+@field+' from (select '+@field+',row_number() over(order by '+ @order+')/'+@page+' as page from '+@tablename+') as A where page='+@pagenum
exec(@sql)
end

------其他解决方案--------------------
declare @sql1 varchar(8000)

set @sql1='select (row_number() over(order by '+排序字段+'))/'+分页数+ ' as 分页'
        +字段+' from '+表名+' order by '+排序字段
exec(@sql1)

------其他解决方案--------------------
晕,分页存储过程网上一大片....
------其他解决方案--------------------
引用:
SQL code



123456789101112

create proc p_page @tablename varchar(50), @field varchar(2000), @order varchar(200), @page varchar(10),--每页多少条 @pagenum varchar(10) --页码 asbegindeclare @sql varchar……


------其他解决方案--------------------
修改了下:
alter proc p_page
@tablename varchar(50),
@field varchar(2000),
@order varchar(200),
@page varchar(10),--每页多少条
@pagenum varchar(10) --页码
as
begin
declare @sql varchar(5000)
set @sql='select '+@field+' from (select '+@field+',row_number() over(order by '+ @order+')/('+@page+'+1)+1 as page from '+@tablename+') as A where page='+@pagenum

exec(@sql)
end