分页sql存储过程算法

/****** Object:  StoredProcedure [dbo].[PRO_Pub_FenYe]    Script Date: 08/04/2014 11:14:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
--suchao
--2014-04-27
--分页查找公共方法
*/
CREATE PROCEDURE [dbo].[PRO_Pub_FenYe]
    @AsyncSql NVARCHAR(MAX),
	@PageIndex int,
	@PageSize int,
	@RecordCount int output
AS
BEGIN

SET NOCOUNT ON

DECLARE @Sql NVARCHAR(MAX) --定义SQL语句

SET @[email protected];

    DECLARE @pagesql NVARCHAR(MAX)
	SET @pagesql=‘SELECT * FROM (‘[email protected]+‘) AS temp WHERE myrank  BETWEEN ‘+ CAST((@PageIndex-1)*@PageSize+1 AS NVARCHAR(10))+‘ AND ‘+CAST(@PageIndex*@PageSize AS NVARCHAR(10))+‘‘

	exec sp_executesql  @pagesql --执行SQL语句返回当前页面数据

	DECLARE @recount NVARCHAR(MAX)
	SET @recount=‘SELECT @RecordCount=COUNT(1) FROM (‘[email protected]+‘) AS temp‘

	EXEC sp_executesql @recount,N‘@RecordCount int output‘,@RecordCount output --返回受影响行数
	    print @RecordCount
	return @@error
END
GO
时间: 2024-12-13 12:29:19

分页sql存储过程算法的相关文章

创建sql自定义的函数及商品分页sql存储过程

--商品筛选时判断品牌ID是否存在 --select dbo.isValite(94,94)create function isValite(@brandId int,@bId int)returns intas begin Declare @rNumber int if @brandId = @bId set @rNumber = 1 else set @rNumber = 0 if @bId = 0 set @rNumber = 1 return @rNumberendgo --判断商品筛选

SQL 存储过程 分页

set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: *** -- Create date: 2014-03-27 20:00 -- Description: 采用最新的 row_number() over 技术高效分页方法 -- ============================================= ALTER PRO

SQL存储过程分页(通用的拼接SQL语句思路实现)

多表通用的SQL存储过程分页 USE [EmailCenter] GO /****** Object: StoredProcedure [dbo].[Common_PageList] Script Date: 2016/2/29 11:00:19 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROC [dbo].[Common_PageList] ( @tab nvarchar(200),---表名 @strFl

oracle入门(8)——实战:支持可变参数、多种条件、多个参数排序、分页的存储过程查询组件

[本文介绍] 学了好几天,由于项目需要,忙活了两天,写出了个小组件,不过现在还只能支持单表操作.也没考虑算法上的优化,查询速度要比hibernate只快了一点点,可能是不涉及多表查询的缘故吧,多表的情况下才更快. 经非专业的测试,在有分页的情况下,在300万条数据里面查询的时间保持在0.1秒内.相同查询条件+分页的情况下,hibernate 用时0.3秒内. 不分页的条件下,查出来的数据越多,时间越长,时间长的话,跟hibernate相相比就没什么优势了. [思路] 我的思路是从java传来”字

PL/SQL存储过程编程

/**author huangchaobiao *Email:[email protected] */ PL/SQL存储过程编程(上) 1. Oracle应用编辑方法概览 答:1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用; 2) ODBC 3) OCI: C语言和数据库打交道的方法,和ProC很相似,更底层,很少用; 4) SQLJ: 很新的一种用Java访问Oracle数据库的方法,会的人不多; 5) JDBC 6) PL/SQL: 存储在数据内运行, 其他

sql存储过程几个简单例子

导读:sql存储是数据库操作过程中比较重要的一个环节,对于一些初学者来说也是比较抽象难理解的,本文我将通过几个实例来解析数据库中的sql存储过程,这样就将抽象的事物形象化,比较容易理解. 例1: create proc proc_stu @sname varchar(20), @pwd varchar(20) as select * from ren where [email protected] and [email protected] go 查看结果:proc_stu 'admin','a

分享一个通用的分页SQL

又很久没写博客,今天记录一个SQLserver通用分页存储过程(适用于SqlServer2000及以上版本) 1.支持连表 2.支持条件查询 USE [MYDB] GO /****** Object:  StoredProcedure [dbo].[SP_CommonPage] SET QUOTED_IDENTIFIER ON GO ------------------------------------ --用途:分页存储过程(对有主键的表效率极高) --说明: ---------------

T-SQL分页功能存储过程

分页功能存储过程 ALTER PROCEDURE [dbo].[P_SplitPagesQuery] @TablesName NVARCHAR(MAX),--表名或视图名(只能传单一表名) @PK NVARCHAR(MAX)='',--主键(可以为空!) @StrSort NVARCHAR(MAX)='',--排序字段(按照这个字段对查询结果进行排序),不能为空 @SortType INT =0,--排序方式,默认为0(升序),1为降序 @StrWhere NVARCHAR(MAX)='',--

SQL存储过程和函数

SQL存储过程: 由来:在具体应用中,一个完整的操作会包含多条SQL语句,在执行过程中需要根据前面SQL语句的执行结果有选择的执行后面的SQL语句.因此,mysql提供了数据库对象存储过程和函数. 定义:存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令.和函数的区别在于,函数有返回值,存储过程没有. 优点: 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度.2.当对数据库进行复杂操作时,