create proc st_split
@tableName varchar(100),
@column varchar(max),
@page int=1,
@pagesize int=10
as begin
set nocount on
if len(isnull(@tablename,''))<=0 or len(isnull(@column,''))<=0
return
if @page<=0 or @pagesize<=0
return
declare @sql varchar(max)
if not exists(
select * from sys.objects where name=@tableName and type='u')
begin
raiserror('对不起,你输入的表名不存在',16,1)
return
end
set @sql='select '+@column+' from (select *,row_number() over( order by getdate()) as rn from '+@tableName+
') as t where rn between '+cast((@page-1)*@pagesize as varchar)+' and '+cast(@page*@pagesize as varchar)
print @sql
exec(@sql)
set nocount off
end
解决方案 »
- 貼一個我寫的關於生產排程的存儲過程。還不完善,目前隻針對單個訂單,沒有考慮到訂單沖突
- 菜鸟求助!--大家帮我看一下这一段代码的功能
- 如何将A表的记录 追加到 B表的列。没多少分了,帮忙!
- 同一个SQL脚本,执行速度相差100倍。INSTALL SHIELD打包与.NET自带打包,区别为什么这么大?
- 为何我用命令分离时老提示:数据库正在使用,怎么办?
- 象sql server、db2这些属于数据库呢?还是属于数据库系统?还是属于数据库管理系统?
- 合并结果集,如果得到记录数
- 求SQL语句
- 急急::请问MS-SQL对数据的插入是不是有个数限制???
- 这么设计合理不?急用!
- 存储过程+判断,在线等
- 求提高查询效率的sql语句
declare @page_size int;
declare @page_num int;--比如:每页10条记录
set @page_size = 500;--比如:先取第1页
set @page_num = 1;select *
from
(
select *,
(row_number() over(order by id) - 1) / @page_size as pagenum
from tb
)t
where pagenum = @page_num – 1