SQL Server 2008 分页存储过程

在用的,已经不知道出处了,如果有侵权请告诉我,我立刻删掉。

USE [ActivaOnlineSupport]
GO
/****** Object:  StoredProcedure [dbo].[PROCE_PAGECHANGE]    Script Date: 08/13/2014 13:45:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[PROCE_PAGECHANGE]
(
 @TableName varchar(50),            --表名
 @ReFieldsStr varchar(200) = ‘*‘,   --字段名(全部字段为*)
 @OrderString varchar(200),         --排序字段(必须!支持多字段不用加order by)
 @WhereString varchar(500) =N‘‘,  --条件语句(不用加where)
 @PageSize int,                     --每页多少条记录
 @PageIndex int = 1 ,               --指定当前为第几页
 @TotalRecord int output            --返回总记录数
)
AS

BEGIN    

    --处理开始点和结束点
    Declare @StartRecord int;
    Declare @EndRecord int;
    Declare @TotalCountSql nvarchar(500);
    Declare @SqlString nvarchar(2000);
    set @StartRecord = (@PageIndex-1)*@PageSize + 1
    set @EndRecord = @StartRecord + @PageSize - 1
    SET @TotalCountSql= N‘select @TotalRecord = count(*) from ‘ + @TableName;--总记录数语句
    SET @SqlString = N‘(select row_number() over (order by ‘+ @OrderString +‘) as rowId,‘+@ReFieldsStr+‘ from ‘+ @TableName;--查询语句
    --
    IF (@WhereString! = ‘‘ or @WhereString!=null)
        BEGIN
            SET @TotalCountSql=@TotalCountSql + ‘  where ‘+ @WhereString;
            SET @SqlString =@SqlString+ ‘  where ‘+ @WhereString;
        END
    --第一次执行得到
    --IF(@TotalRecord is null)
    --   BEGIN
           EXEC sp_executesql @totalCountSql,N‘@TotalRecord int out‘,@TotalRecord output;--返回总记录数
    --  END
    ----执行主语句
    set @SqlString =‘select * from ‘ + @SqlString + ‘) as t where rowId between ‘ + ltrim(str(@StartRecord)) + ‘ and ‘ +  ltrim(str(@EndRecord));
    Exec(@SqlString)
END

SQL Server 2008 分页存储过程

时间: 2024-10-16 12:22:19

SQL Server 2008 分页存储过程的相关文章

SQL SERVER 通用分页存储过程

SQL SERVER 通用分页存储过程 从SQLSERVER 2005开始,提供了Row_Number()函数,利用函数生成的Index来处理分页,按照正常的逻辑思维都是传pageIndex和pageSize来完成分页,昨天前端和我沟通,他们使用jQuery.DataTable.js插件,而且经过了公司底层的封装,pageIndex需要变动一下,变成pageIndex*pageSize来传. 也就是说按每页显示30条算,第一次传0,第二次传30这样来计算,我也是醉了. 1.传pageIndex和

Sql Server通用分页存储过程

Sql Server2005通用分页存储过程 CREATE PROCEDURE [dbo].[Common_GetPagedList] ( @TableName nvarchar(100), --表名 @ColumnNames nvarchar(1000) = '*', --字段名集合(全部字段为*,其它逗号分隔) @OrderClause nvarchar(1000), --排序从句(不包含order by) @WhereClause nvarchar(1000) =N' 1=1 ',   

SQL Server 2008之存储过程的设计和实现

共有两类基本的system stored procedure: system stored procedure:T-SQL语言写的,在master数据库中提供的,大部分使用的是sp_前缀,在其他数据库中使用的时候,不需要指定master数据库作为他们的名称的一部分,典型应用于管理任务 system extended stored procedure:非托管代码写的(主要是C++),通过DLL提供的,大部分使用的是xp_前缀,用来扩展无法使用T-SQL完成的任务 还可以创建用户自定义的extend

SQL Server 公共分页存储过程及使用方法

-- 使用方法:在获取查询列表的存储过程中执行,并指定参数就行了-- exec ListPage @SQL, @PageSize, @PageNo, @OrderStr, @OrderType-- @SQL   查询语句-- @PageSize 数据数量-- @PageNo  当前页码-- @OrderStr 排序字段-- @OrderType 排序 0 ASC 1 DESCUSE [DataBaseName]--数据库名称GOSET ANSI_NULLS ONGOSET QUOTED_IDEN

SQL SERVER 通用分页存储过程,两种用法任你选

写在前面 从SQLSERVER 2005开始,提供了Row_Number()函数,利用函数生成的Index来处理分页,按照正常的逻辑思维都是传pageIndex和pageSize来完成分页,昨天前端和我沟通,他们使用jQuery.DataTable.js插件,而且经过了公司底层的封装,pageIndex需要变动一下,变成pageIndex*pageSize来传. 也就是说按每页显示30条算,第一次传0,第二次传30这样来计算,我也是醉了. 1.传pageIndex和pageSize CREATE

sql server 2008分页

SELECT id, name, staffopenid, imageurl, content, ordernum, praisenum, createdate, lable, label2, manageno FROM ( SELECT row_number()over(ORDER BY tempcolumn)temprownumber, * FROM ( SELECT top 开始位置+10 tempcolumn=0, * FROM staffHairDesignerInfo)t )tt W

SQL Server 2008空间数据应用系列十:使用存储过程生成GeoRSS聚合空间信息

原文:SQL Server 2008空间数据应用系列十:使用存储过程生成GeoRSS聚合空间信息 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验. 3.熟悉或了解Microsoft SQL Server 2008中的空间数据类型. 4.具备相应(比如OGC规范.KML规范)的GIS专业理论知识. 5.其他相

SQL Server 2008 R2——T-SQL 存储过程 返回表

未完成,感觉有点问题. ==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完整性. 未经作者同意请勿修改(包括本声明),保留法律追究的权利. 未经作者同意请勿用于出版.印刷或学术引用. 本文不定期修正完善,为保证内容正确,建议移步原文处阅读. 本文链接:http://www.cnblogs.com/wlsandwho/p/4374367.html =

如何在SQL Server 2008下轻松调试T-SQL语句和存储过程

一.回顾早期的SQL SERVER版本:早在SQL Server 2000时代,查询分析器的功能还很简陋,远不如VS那么强大.到SQL Server 2005时代,代码高亮.SQL优化等功能逐渐加强,但是依然无法调试SQL语句.好一点的第三方的SQL语法编辑器似乎也不够完美,这样导致一些人抱怨存储过程不便于维护,开发的时候能不用则不用.二.SQL Server 2008 Express 智能提示加强:该功能是SQL2008在SQL Server 2005之后的升级版,我们可以很方便的调用智能提示