`
xiaoer_1982
  • 浏览: 1882601 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

SQL2005分页存储过程

阅读更多

www.diy567.com是我弄的文娱网站,累了,去上面休息一下下

---------------------------------------------------------

-- Author : SQL2005分页存储过程htl258(Tony)

-- Date : 2009-09-22 13:00:50

-- Version: Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86)

-- Mar 29 2009 10:27:29

-- Copyright (c) 1988-2008 Microsoft Corporation

-- Enterprise Evaluation Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)

---------------------------------------------------------

--创建测试表

IF OBJECT_ID('[tb]') IS NOT NULL

DROP TABLE [tb]

GO

CREATE TABLE [tb]([Col] NVARCHAR(10))

--填充数据

INSERT tb

SELECT TOP 26 col1=CHAR(64+ROW_NUMBER()OVER(ORDER BY GETDATE()))

FROM sys.objects

--创建分页的存储过程

IF OBJECT_ID('[sp_page]') IS NOT NULL

DROP PROC [sp_page]

GO

CREATE PROC sp_page

@tablename NVARCHAR(50),--表名

@pagerow INT=0,--每页显示的行数(0为全部)

@pagenow INT=1, --要显示第几页(默认为)

@ordercol VARCHAR(50)=NULL, --排序字段

@order BIT=0 --排序规则0顺序,1倒序

AS

DECLARE @s NVARCHAR(MAX)

SET @s='

WITH t AS

(

SELECT

rownum=ROW_NUMBER()OVER(ORDER BY '+ISNULL(@ordercol,'GETDATE()')+

CASE @order WHEN 1 THEN ' desc' ELSE ' asc' END+'),

*

FROM '+@tablename +'

)

SELECT *

FROM t'

IF @pagerow>0

SET @s=@s+'

WHERE rownum BETWEEN '+LTRIM(@pagerow*(@pagenow-1)+1)+'

AND '+LTRIM(@pagerow*@pagenow)

EXEC(@s)

GO

--返回tb表每页行第页的记录

EXEC sp_page 'tb',6,2

/*

rownum Col

-------------------- ----------

7 G

8 H

9 I

10 J

11 K

12 L

 

(6 行受影响)

*/

EXEC sp_page 'tb',6,2,'col',2

/*

rownum Col

-------------------- ----------

7 T

8 S

9 R

10 Q

11 P

12 O

 

(6 行受影响)

*/

--返回所有记录

EXEC sp_page 'tb'

/*

rownum Col

-------------------- ----------

1 A

2 B

3 C

4 D

5 E

6 F

7 G

8 H

9 I

10 J

11 K

12 L

13 M

14 N

15 O

16 P

17 Q

18 R

19 S

20 T

21 U

22 V

23 W

24 X

25 Y

26 Z

 

(26 行受影响)

*/

分享到:
评论
1 楼 vasuer 2010-08-30  
每页显示的行数(0为全部)
@pagenow INT=1, --要显示第

相关推荐

    sql2005分页存储过程

    sql2005分页存储过程

    sql Server 通用分页存储过程

    sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程

    sql2000和sql2005分页存储过程

    2. SQL Server 2005 分页存储过程: SQL Server 2005引入了`OFFSET`和`FETCH NEXT`关键字,使得分页查询更为简洁。下面是一个使用这些关键字的存储过程示例: ```sql CREATE PROCEDURE GetPagedData_2005 @...

    sql2000,sql2005分页存储过程

    ### SQL2000与SQL2005中的分页存储过程详解 #### 概述 在数据库查询中,为了提高用户体验以及系统性能,经常需要实现分页功能。本篇文章将详细解读一个针对SQL Server 2000及SQL Server 2005版本的分页存储过程——...

    高效分页存储过程 高效分页存储过程

    本文将深入探讨如何创建和使用高效的分页存储过程,并针对SQL Server 2005及2010提供一个实用的例子。 首先,理解分页的基本概念。分页通常涉及到两个关键参数:当前页码(PageNumber)和每页记录数(PageSize)。...

    C#_SQL2005分页存储过程

    此存储过程只适用于SQL Server2005,因为用到了SQL Server2005中的row_number()函数。 写了一个winform的程序来运行此存储过程,有兴趣的朋友可以看一下,并提供您的宝贵意见。 个人认为这个存储过程是比较容易理解...

    sqlserver 分页存储过程

    SQL Server 分页存储过程是一种在数据库中实现高效数据分页查询的方法。在大型数据集的展示中,分页是必不可少的,因为它允许用户逐步浏览数据,而不是一次性加载所有记录,从而提高用户体验并减少服务器负载。以下...

    SQL通用分页存储过程完整代码

    SQL 通用 分页 存储 过程 完整代码

    SqlServer 分页存储过程以及代码调用

    二、SQL Server的分页存储过程 在SQL Server中,可以使用`OFFSET`和`FETCH NEXT`语句实现分页。下面是一个简单的分页存储过程示例: ```sql CREATE PROCEDURE [dbo].[usp_GetPagedData] @TableName NVARCHAR(128)...

    通用Sql分页存储过程

    通用sql分页存储过程,提供12参数可供选择。其中,提供两种分页方案被选择和相关排序方式,支持自定义查询、自定义排序等

    sql的存储过程-简单分页

    很好的通过存储过程实现分页的技术,很好的通过存储过程实现分页的技术,很好的通过存储过程实现分页的技术

    sql2000可用分页存储过程

    使用游标实现的sql2000可用分页存储过程,不要增加排序字段

    Sql Server 通用分页存储过程(适用与 BootStrap Table)

    通用的Sql Server分页程序,并且符合BootStrap Table 的调用标准.

    SQLserver 分页存储过程

    数据库存储过程,可直接使用,可直接传参数,可根据自己额需要进行修改~简单、快捷

    C# SQL2005 分页排序存储过程

    一个典型的分页存储过程可能包括以下参数:开始行号、每页显示的行数、排序字段及排序方式(升序或降序)。例如,创建一个名为`usp_GetPagedSortedData`的存储过程: ```sql CREATE PROCEDURE usp_...

    sql分页存储过程

    sql分页存储过程 CREATE PROCEDURE [dbo].[dbTab_PagerHelper] @TableName VARCHAR(50), --表名 @FieldNames VARCHAR(1000), --显示列名,如果是全部字段则为* @WhereString VARCHAR(256) = NULL, --查询条件 ...

Global site tag (gtag.js) - Google Analytics