sqlserver 通用分页存储过程
            (编辑:jimmy 日期: 2025/11/4 浏览:2)
         
        复制代码 代码如下:
create proc commonPagination 
@columns varchar(500), --要显示的列名,用逗号隔开 
@tableName varchar(100), --要查询的表名 
@orderColumnName varchar(100), --排序的列名 
@order varchar(50), --排序的方式,升序为asc,降序为 desc 
@where varchar(100), --where 条件,如果不带查询条件,请用 1=1 
@pageIndex int, --当前页索引 
@pageSize int, --页大小(每页显示的记录条数) 
@pageCount int output --总页数,输出参数 
as 
begin 
declare @sqlRecordCount nvarchar(1000) --得到总记录条数的语句 
declare @sqlSelect nvarchar(1000) --查询语句 
set @sqlRecordCount=N'select @recordCount=count(*) from ' 
+@tableName + ' where '+ @where 
declare @recordCount int --保存总记录条数的变量 
exec sp_executesql @sqlRecordCount,N'@recordCount int output',@recordCount output 
--动态 sql 传参 
if( @recordCount % @pageSize = 0) --如果总记录条数可以被页大小整除 
set @pageCount = @recordCount / @pageSize --总页数就等于总记录条数除以页大小 
else --如果总记录条数不能被页大小整除 
set @pageCount = @recordCount / @pageSize + 1 --总页数就等于总记录条数除以页大小加1 
set @sqlSelect = 
N'select '+@columns+' from ( 
select row_number() over (order by ' 
+@orderColumnName+' '+@order 
+') as tempid,* from ' 
+@tableName+' where '+ @where 
+') as tempTableName where tempid between ' 
+str((@pageIndex - 1)*@pageSize + 1 ) 
+' and '+str( @pageIndex * @pageSize) 
exec (@sqlSelect) --执行动态Sql 
end 
go 
--以下是调用示例 
use pubs 
go 
declare @pageCount int 
exec commonPagination 
'job_id,job_desc','jobs','job_id', 
'asc','1=1',2,2,@pageCount output 
select '总页数为:' + str(@pageCount)
 
        
    
    荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?