Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Sql2000存储过程分页

Sql2000存储过程分页

作者头像
跟着阿笨一起玩NET
发布于 2021-09-26 08:56:45
发布于 2021-09-26 08:56:45
90600
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER PROCEDURE [dbo].[procPageChangeForSql2000]
(
 @fromSql varchar(3000),
 @querySql varchar(2000),
 @whereSql varchar(1300),
 @orderBySql varchar(200),
 @keyField varchar(100),
 @PageSize int,                     --每页多少条记录
 @PageIndex int,               --指定当前为第几页
 @TotalRecord int output            --返回总记录数
)
AS
BEGIN    
    declare @sql varchar(8000)
    declare @totalCountSql nvarchar(4000)
    declare @StartRecord int
    declare @pageKeyField varchar(100)
    declare @whereSql2 varchar(1300) declare @nPageCount int --处理开始点和结束点
    IF (@whereSql! = '' AND @whereSql IS NOT NULL)
        set @whereSql=' where '+ @whereSql
    else set @whereSql='' IF (@orderBySql! = '' AND @orderBySql IS NOT NULL)
        set @orderBySql=' order by '+ @orderBySql
    else set @orderBySql=''  --获取关键字段 set @pageKeyField= substring(@keyField,CHARINDEX(N'.',@keyField)+1,LEN(@keyField)-CHARINDEX(N'.',@keyField))
    --计算总条数
    set @totalCountSql= N'select @TotalRecord = count(*) from ' + @fromSql+@whereSql --总记录数语句
    exec sp_executesql @totalCountSql,N'@TotalRecord int out',@TotalRecord output;--返回总记录数
    if(@PageSize>-1)
    begin     set @nPageCount =CONVERT(int, ceiling(@TotalRecord*1.0/@PageSize))
        if(@nPageCount=0 and @PageIndex != 0)
        set @PageIndex = 0
        else if (@PageIndex > (@nPageCount - 1))
        set @PageIndex = 0
        set @StartRecord = (@PageIndex)*@PageSize --组织Sql语句 IF (@whereSql! = '' AND @whereSql IS NOT NULL) set @whereSql2=@whereSql+' and p_l.'+@pageKeyField+' is null ' else set @whereSql2=' where p_l.'+@pageKeyField+' is null ' set @sql='select top '+str(@PageSize)+' '+@querySql+' from ' +@fromSql +' left join (select top '+str(@StartRecord)+' '+@keyField+' from ' +@fromSql +@whereSql +@orderBySql +') p_l on p_l.'+@pageKeyField+'='+@keyField +@whereSql2 +@orderBySql
    end
    else
    begin set @sql='select '+@querySql+' from '+@fromSql+@whereSql+@orderBySql
    end
    Exec(@sql)
END
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Sql2005过程分页
ALTER PROCEDURE [dbo].[procPageChangeForSql2005] ( @fromSql varchar(4000), @querySql varchar(4000), @whereSql varchar(max), @orderBySql varchar(200), @keyField varchar(100), @PageSize int, --每页多少条记录 @PageIndex int,
跟着阿笨一起玩NET
2021/09/26
7580
通用分页存储过程,干货无污染
---判断是否存在该存储过程 IF EXISTS (SELECT * FROM DBO.SYSOBJECTS WHERE ID = OBJECT_ID(N'[dbo].[WEB_PageView]') and OBJECTPROPERTY(ID, N'IsProcedure') = 1) DROP PROCEDURE [dbo].[WEB_PageView] GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE
追逐时光者
2022/02/15
3020
据说很快的数据库分页存储过程
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100555.html原文链接:
全栈程序员站长
2021/05/06
5220
sql 2008 分页存储过程
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- [SelectBase] 1,1,'Users','username=''test''' ALTER procedure [dbo].[SelectBase] @PageIndex int, @PageSize int, @TableName nvarchar(max), @Where
javascript.shop
2019/09/04
1.2K0
silverlight + wcf(json格式) + sqlserver存储过程分页
silverlight并没有提供现成的分页控件,百度了一圈,也没有发现aspx中好用的类似AspNetPager成熟控件,网上现有的一些分页代码,很多也是基于1.0版本的,silverlight2.0的并不多,自个儿琢磨了一下,发现自己弄一个也并非难事,思路和主要代码分享如下: 1.通用的“海量”数据分页存储过程 在做aspx开发时我已经用存储过程分页多年,这个东东是通用的(不管前端用什么语言来做),而且性能也不错,所以这里就直接套过来用了,百度一下"分页存储过程"会有N多版本,这里也给出我自己写的一个版本
菩提树下的杨过
2018/01/22
1.9K0
silverlight + wcf(json格式) + sqlserver存储过程分页
SQL 存储过程分页
CREATE PROC p_Team_GetTemaList @pageindex INT , @pagesize INT , @keywords VARCHAR(200) , --模糊查询 名称 标签 @citycode VARCHAR(100) , @verifyStatus INT =0,-- -1所有的 0 没有通过 1 审核通过 @orderby INT, @TotalCount INT OUTPUT AS BEGIN
纯粹是糖
2018/03/14
1.6K0
重写了MSSQL分页存储过程,附完整sql脚本
晚上花了1小时重写了MSSQL数据库中的分页存储过程,采用ROW_NUMBER的方式,需要MSSQL2005及以上版本支持。
崔文远TroyCui
2019/02/26
1.2K0
通用分页存储过程
/*通用分页存储过程*/ USE HotelManagementSystem GO IF EXISTS(SELECT * FROM sys.objects WHERE NAME='cndoup_GetPageOfRecords') DROP PROCEDURE cndoup_GetPageOfRecords GO --创建存储过程 CREATE PROCEDURE cndoup_GetPageOfRecords @pageSize int = 20,
欢醉
2018/01/22
8840
关于数据库存储过程分页DatagridView BindingNavigator 控件的详细实现
BindingNavigator: 就是DataGridView控件上面的那个,在工程里名字: bindngrDemo
全栈程序员站长
2022/09/14
5100
关于数据库存储过程分页DatagridView BindingNavigator 控件的详细实现
针对Ext js的分页存储过程-适用于sqlserver2008
USE [UTMP_RC_121213] GO /****** Object: StoredProcedure [dbo].[PageProc] Script Date: 01/05/2013 08:45:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: 刘晓伦 -- Create date: 12
liulun
2022/05/09
5590
MSSQL之二十一 存储过程案例
张哥编程
2024/12/17
1330
使用ROW_NUMBER()的分页存储过程
分页存储过程,可以直接通过传入表名进行分页的,用到了ROW_NUMBER()函数,所以只适用于MSSQL2005以上. Sql代码 -- Description: 分页,用到了ROW_NUMBER() -- ============================================= create PROCEDURE [dbo].[proc_ShowPage] @tblName varchar(255), -- 表名 @strGetFields varchar(1000
用户8983410
2021/11/02
4810
高效分页存储过程
存储过程与页面调用如下:CREATEPROCEDUREsearch_sp@tblNamevar
Java架构师必看
2021/03/22
5130
祺佑三层开发框架(猫框)2023.11.16发新
加菲猫的VFP
2023/11/16
2290
祺佑三层开发框架(猫框)2023.11.16发新
解密encrypt的存储过程
--破解函数,过程,触发器,视图.仅限于SQLSERVER2000 IF EXISTS (select 1 from dbo.sysobjects where id = object_id(N'[dbo].[SP_DECRYPT]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[SP_DECRYPT] GO CREATE PROCEDURE sp_decrypt(@objectname varchar(50)) AS begin set nocount on --破解字节不受限制,适用于SQLSERVER2000存储过程,函数,视图,触发器 --修正上一版视图触发器不能正确解密错误 begin tran declare @objectname1 varchar(100),@orgvarbin varbinary(8000) declare @sql1 nvarchar(4000),@sql2 varchar(8000),@sql3 nvarchar(4000),@sql4 nvarchar(4000) DECLARE @OrigSpText1 nvarchar(4000), @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000) declare @i int,@status int,@type varchar(10),@parentid int declare @colid int,@n int,@q int,@j int,@k int,@encrypted int,@number int select @type=xtype,@parentid=parent_obj from sysobjects where id=object_id(@objectname) create table #temp(number int,colid int,ctext varbinary(8000),encrypted int,status int) insert #temp SELECT number,colid,ctext,encrypted,status FROM syscomments WHERE id = object_id(@objectname) select @number=max(number) from #temp set @k=0 while @k<=@number begin if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k) begin if @type='P' set @sql1=(case when @number>1 then 'ALTER PROCEDURE '+ @objectname +';'+rtrim(@k)+' WITH ENCRYPTION AS ' else 'ALTER PROCEDURE '+ @objectname+' WITH ENCRYPTION AS ' end) if @type='TR' begin declare @parent_obj varchar(255),@tr_parent_xtype varchar(10) select @parent_obj=parent_obj from sysobjects where id=object_id(@objectname) select @tr_parent_xtype=xtype from sysobjects where id=@parent_obj if @tr_parent_xtype='V' begin set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION INSTERD OF INSERT AS PRINT 1 ' end else begin set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 ' end end if @type='FN' or @type='TF' or @type='IF' set @sql1=(case
jack.yang
2025/04/05
490
SQL基础分页存储过程(案例一)
1 --分页 存储过程 案例 2 3 -- 所执行的存储过程 4 create proc pageForUsers 5 @currPage int, --当前页数 6 @pageSize int, --每页多少条记录 7 @count int output --总记录数 8 as 9 declare @firstIndex int 10 declare @lastIndex i
用户1112962
2018/07/04
5210
曾今的代码系列——自己的分页控件+存储过程实现分页
项目里面的测试代码,仅供参考 LoginByAjax <title>Ajax登陆</title> <script src="Scripts/common.js" type="text/javascript"></script> <script type="text/javascript"> var xhr; window.onload = function () { xhr = new createXmlHttp();
用户1161731
2018/01/11
7630
曾今的代码系列——自己的分页控件+存储过程实现分页
SQLSERVER存储过程语法详解
@parameter 过程中的参数。在 Create PROCEDURE 语句中可以声明一个或多个参数。用户必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认值)。
全栈程序员站长
2022/09/13
1.8K0
关于SQL Server 镜像数据库快照的创建及使用
从SQL Server 2005 SP1 起,SQL 开始支持数据库镜像。它的设计目的是试图为SQL Server 提供一个具有实时性数据同步的灾难恢复技术,即能够提供数据冗余备份,切换起来比较方便。每个主体数据库只能有一个镜像数据库。镜像数据库作为主体数据库的一个副本,在主体数据库发生故障、不可访问时能够迅速恢复数据库访问,提供故障恢复功能。镜像数据库一直处于“恢复”状态,因此不能被直接访问。
东山絮柳仔
2021/03/20
2.4K0
走向面试之数据库基础:三、SQL进阶之变量、事务、存储过程与触发器
  SELECT 以表格的方式输出,可以同时输出多个变量;而PRINT 则是以文本的方式输出,一次只能输出一个变量的值。
Edison Zhou
2018/08/20
1.3K0
走向面试之数据库基础:三、SQL进阶之变量、事务、存储过程与触发器
相关推荐
Sql2005过程分页
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验