本文章介绍了关于在mmssqlserver中三种分页存储过程实现代码,有需要的朋友可以参考一下下哈,好了费话不说多了我们来看看吧。
--根据max(min)id
CWMS 2.0功能介绍:一、 员工考勤系统,国内首创CWMS2.0的企业员工在线考勤系统。二、 自定义URL Rewrite重写,友好的搜索引擎 URL优化。三、 代码与模板分离技术,支持超过5种类型的模板类型。包括:文章、图文、产品、单页、留言板。四、 购物车功能,CWMS2.0集成国内主流支付接口。如:淘宝、易趣、快钱等。完全可媲美专业网上商城系统。五、 多语言自动切换 中英文的说明。六、
0
| 代码如下 | 复制代码 |
| CREATE PROC [dbo].[proc__id] @pageindex int=1,--当前页数 @pagesize int=10,--每页大小 @tablename VARCHAR(50)='',--表名 @fields VARCHAR(1000)='',--查询的字段集合 @keyid VARCHAR(50)='',--主键 @condition NVARCHAR(1000)='',--查询条件 @orderstr VARCHAR(500),--排序条件 @totalRecord BIGINT OUTPUT--总记录数 AS IF ISNULL(@orderstr,N'')=N'' SET @orderstr=N' ORDER BY '+@keyid+N' DESC ' IF ISNULL(@fields,N'')=N'' SET @fields=N'*' IF ISNULL(@condition,N'')=N'' SET @condition=N'1=1' DECLARE @sql NVARCHAR(4000) --IF(@totalRecord IS NULL) --BEGIN SET @sql=N'SELECT @totalRecord=COUNT(*)' +N' FROM '+@tablename +N' WHERE '+@condition EXEC sp_executesql @sql,N'@totalRecord INT OUTPUT',@totalRecord OUTPUT --END IF(@pageindex=1) BEGIN SET @sql=N'SELECT TOP '+STR(@pagesize)+N' '+@fields+N' FROM '+@tablename+N' WHERE '+@condition+N' '+@orderstr EXEC(@sql) END ELSE BEGIN DECLARE @operatestr CHAR(3),@comparestr CHAR(1) SET @operatestr='MAX' SET @comparestr='>' IF(@orderstr'') BEGIN IF(CHARINDEX('desc',LOWER(@orderstr))0) BEGIN SET @operatestr='MIN' SET @comparestr=' END END SET @sql=N'SELECT top '+STR(@pagesize)+N' '+@fields+N' FROM '+@tablename+N' WHERE '+@keyid+@comparestr +N'(SELECT '+@operatestr+N'('+@keyid+N') FROM '+@tablename+N' WHERE '+@keyid +N' IN (SELECT TOP '+STR((@pageindex-1)*@pagesize)+N' '+@keyid+N' FROM '+@tablename+N' WHERE ' +@condition+N' '+@orderstr+N')) AND '+@condition+N' '+@orderstr EXEC(@sql) END GO |
|
--根据ROW_NUMBER() OVER
| 代码如下 | 复制代码 |
| CREATE PROC [dbo].[proc_select_page_row] @pageindex INT=1,--当前页数 @pagesize INT=10,--每页大小 @tablename VARCHAR(50)='',--表名 @fields VARCHAR(1000)='*',--查询的字段集合 @keyid VARCHAR(50)='',--主键 @condition NVARCHAR(1000)='',--查询条件 @orderstr VARCHAR(500),--排序条件 @totalRecord BIGINT OUTPUT--总记录数 AS IF ISNULL(@orderstr,N'')=N'' SET @orderstr=N' ORDER BY '+@keyid+N' DESC ' IF ISNULL(@fields,N'')=N'' SET @fields=N'*' IF ISNULL(@condition,N'')=N'' SET @condition=N'1=1' DECLARE @sql NVARCHAR(4000) -- IF @totalRecord IS NULL -- BEGIN SET @sql=N'SELECT @totalRecord=COUNT(*)' +N' FROM '+@tablename +N' WHERE '+@condition EXEC sp_executesql @sql,N'@totalRecord bigint OUTPUT',@totalRecord OUTPUT --END IF(@pageindex=1) BEGIN SET @sql=N'SELECT TOP '+STR(@pagesize)+N' '+@fields+N' FROM '+@tablename+N' WHERE '+@condition+N' '+@orderstr EXEC(@sql) END ELSE BEGIN DECLARE @StartRecord INT SET @StartRecord = (@pageindex-1)*@pagesize + 1 SET @sql=N'SELECT * FROM (SELECT ROW_NUMBER() OVER ('+ @orderstr +N') AS rowId,'+@fields+N' FROM '+ @tablename+N') AS T WHERE rowId>='+STR(@StartRecord)+N' and rowId EXEC(@sql) END GO |
|
--根据TOP ID
| 代码如下 | 复制代码 |
| CREATE PROC [dbo].[proc_select_page_top] @pageindex INT=1,--当前页数 @pagesize INT=10,--每页大小 @tablename VARCHAR(50)='',--表名 @fields VARCHAR(1000)='',--查询的字段集合 @keyid VARCHAR(50)='',--主键 @condition NVARCHAR(1000)='',--查询条件 @orderstr VARCHAR(500),--排序条件 @totalRecord BIGINT OUTPUT--总记录数 AS IF ISNULL(@orderstr,N'')=N'' SET @orderstr=N' ORDER BY '+@keyid+N' DESC ' IF ISNULL(@fields,N'')=N'' SET @fields=N'*' IF ISNULL(@condition,N'')=N'' SET @condition=N'1=1' DECLARE @sql NVARCHAR(4000) --IF(@totalRecord IS NULL) --BEGIN SET @sql=N'SELECT @totalRecord=COUNT(*)' +N' FROM '+@tablename +N' WHERE '+@condition EXEC sp_executesql @sql,N'@totalRecord INT OUTPUT',@totalRecord OUTPUT --END IF(@pageindex=1) BEGIN SET @sql=N'SELECT TOP '+STR(@pagesize)+N' '+@fields+N' FROM '+@tablename+N' WHERE '+@condition+N' '+@orderstr EXEC(@sql) END ELSE BEGIN SET @sql=N'SELECT TOP '+STR(@pagesize)+N' '+@fields+N' FROM '+@tablename+N' WHERE '+@keyid +N' NOT IN(SELECT TOP '+STR((@pageindex-1)*@pagesize)+N' '+@keyid+N' FROM ' +@tablename+N' WHERE '+@condition+N' '+@orderstr+N') AND '+@condition+N' '+@orderstr EXEC(@sql) END GO |
|
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号