MSSQL 存储过程分页 测试 4

原创 2004年10月18日 15:56:00

这个是最 XML 版的 没进行仔细测试 可能还有纰漏

/*
  作者: SLIGHTBOY
  建立日期: 2004-10-18
  修改日期:
  存储作用: 作品浏览分页
  作用数据库: DigitalART_Digitaltion
  输入变量:
  输出变量:
*/
CREATE PROCEDURE dbo.USP_Digitaltion_Browse
  @User_Query varchar(500) = NULL,
  @User_Sort varchar(20) = 'Digitaltion_ID',
  @User_Rank varchar(4) = 'Desc',

  @Page_Size int = 24,
  @Page_Order int = 0
AS
  SET NOCOUNT ON
  DECLARE @SQLQuery varchar(1000)
  IF (@Page_Order > 0)
    IF (@User_Rank = 'Asc')
      IF (@User_Query <> '')
        BEGIN
          Set @SQLQuery =
          'SELECT TOP '+ STR(@Page_Size) +'
          1 AS Tag,
          NULL AS Parent,
          Digitaltion_ID AS [row!1!id!element],
          Digitaltion_Title AS [row!1!title!element],
          Digitaltion_SmallThumbnail AS [row!1!thumb!element]
          FROM [DigitalART_Digitaltion]
          WHERE (Digitaltion_ID > (SELECT MAX(Digitaltion_ID) FROM (SELECT TOP '+ STR(@Page_Order * @Page_Size) +' Digitaltion_ID FROM [DigitalART_Digitaltion] WHERE ('+ @User_Query +') ORDER BY '+ @User_Sort +' Asc) AS TeamTable)) AND ('+ @User_Query +')
          ORDER BY '+ @User_Sort +' Asc
          FOR XML EXPLICIT'
        END
      Else
        BEGIN
          Set @SQLQuery =
          'SELECT TOP '+ STR(@Page_Size) +'
          1 AS Tag,
          NULL AS Parent,
          Digitaltion_ID AS [row!1!id!element],
          Digitaltion_Title AS [row!1!title!element],
          Digitaltion_SmallThumbnail AS [row!1!thumb!element]
          FROM [DigitalART_Digitaltion]
          WHERE (Digitaltion_ID > (SELECT MAX(Digitaltion_ID) FROM (SELECT TOP '+ STR(@Page_Order * @Page_Size) +' Digitaltion_ID FROM [DigitalART_Digitaltion] ORDER BY '+ @User_Sort +' Asc) AS TeamTable))
          ORDER BY '+ @User_Sort +' Asc
          FOR XML EXPLICIT'
        END
    Else
      IF (@User_Query <> '')
        BEGIN
          Set @SQLQuery =
          'SELECT TOP '+ STR(@Page_Size) +'
          1 AS Tag,
          NULL AS Parent,
          Digitaltion_ID AS [row!1!id!element],
          Digitaltion_Title AS [row!1!title!element],
          Digitaltion_SmallThumbnail AS [row!1!thumb!element]
          FROM [DigitalART_Digitaltion]
          WHERE (Digitaltion_ID < (SELECT MIN(Digitaltion_ID) FROM (SELECT TOP '+ STR(@Page_Order * @Page_Size) +' Digitaltion_ID FROM [DigitalART_Digitaltion] WHERE ('+ @User_Query +') ORDER BY '+ @User_Sort +' Desc) AS TeamTable)) AND ('+ @User_Query +')
          ORDER BY '+ @User_Sort +' Desc
          FOR XML EXPLICIT'
        END
      Else
        BEGIN
          Set @SQLQuery =
          'SELECT TOP '+ STR(@Page_Size) +'
          1 AS Tag,
          NULL AS Parent,
          Digitaltion_ID AS [row!1!id!element],
          Digitaltion_Title AS [row!1!title!element],
          Digitaltion_SmallThumbnail AS [row!1!thumb!element]
          FROM [DigitalART_Digitaltion]
          WHERE (Digitaltion_ID < (SELECT MIN(Digitaltion_ID) FROM (SELECT TOP '+ STR(@Page_Order * @Page_Size) +' Digitaltion_ID FROM [DigitalART_Digitaltion] ORDER BY '+ @User_Sort +' Desc) AS TeamTable))
          ORDER BY '+ @User_Sort +' Desc
          FOR XML EXPLICIT'
        END
  Else
    IF (@User_Rank = 'Asc')
      IF (@User_Query <> '')
        BEGIN
          Set @SQLQuery =
          'SELECT TOP '+ STR(@Page_Size) +'
          1 AS Tag,
          NULL AS Parent,
          Digitaltion_ID AS [row!1!id!element],
          Digitaltion_Title AS [row!1!title!element],
          Digitaltion_SmallThumbnail AS [row!1!thumb!element]
          FROM [DigitalART_Digitaltion]
   WHERE ('+ @User_Query +')
          ORDER BY '+ @User_Sort +' Asc
          FOR XML EXPLICIT'
        END
      Else
        BEGIN
          Set @SQLQuery =
          'SELECT TOP '+ STR(@Page_Size) +'
          1 AS Tag,
          NULL AS Parent,
          Digitaltion_ID AS [row!1!id!element],
          Digitaltion_Title AS [row!1!title!element],
          Digitaltion_SmallThumbnail AS [row!1!thumb!element]
          FROM [DigitalART_Digitaltion]
          ORDER BY '+ @User_Sort +' Asc
          FOR XML EXPLICIT'
        END
    Else
      IF (@User_Query <> '')
        BEGIN
          Set @SQLQuery =
          'SELECT TOP '+ STR(@Page_Size) +'
          1 AS Tag,
          NULL AS Parent,
          Digitaltion_ID AS [row!1!id!element],
          Digitaltion_Title AS [row!1!title!element],
          Digitaltion_SmallThumbnail AS [row!1!thumb!element]
          FROM [DigitalART_Digitaltion]
   WHERE ('+ @User_Query +')
          ORDER BY '+ @User_Sort +' Desc
          FOR XML EXPLICIT'
        END
      Else
        BEGIN
          Set @SQLQuery =
          'SELECT TOP '+ STR(@Page_Size) +'
          1 AS Tag,
          NULL AS Parent,
          Digitaltion_ID AS [row!1!id!element],
          Digitaltion_Title AS [row!1!title!element],
          Digitaltion_SmallThumbnail AS [row!1!thumb!element]
          FROM [DigitalART_Digitaltion]
          ORDER BY '+ @User_Sort +' Desc
          FOR XML EXPLICIT'
        END
  SELECT '<DigitalARTBrowse>'
  EXECUTE (@SQLQuery)
  SELECT '</DigitalARTBrowse>'
GO

SQLServer千万数量级分页公共存储过程

转自:http://blog.csdn.net/tem168/article/details/6427123 SQLServer千万数量级分页公共存储过程   通用的数据库分页存...
  • chelen_jak
  • chelen_jak
  • 2014年12月11日 21:24
  • 3204

分页-存储过程5种写法 sqlserver分页

分页-存储过程5种写法 sqlserver分页
  • u012726702
  • u012726702
  • 2016年07月03日 12:40
  • 531

SQLServer分页查询通用存储过程

自开始做项目以来,一直在用。这段存储过程的的原创者(SORRY,忘记名字了),写得这段SQL代码很不错,我在这个基础上,按照我的习惯以及思维方式,调整了代码,只做分页查询用。/**//*-------...
  • fcrpg2005
  • fcrpg2005
  • 2007年02月22日 22:09
  • 11609

MSSQL 存储过程分页 测试 2

中间件 稍微做了修改 作为记录后面改用另一种方法了DECLARE @User_Condition varchar(500)DECLARE @User_Sort varchar(20)DECLARE @...
  • slightboy
  • slightboy
  • 2004年10月18日 14:53
  • 655

asp+sqlserver 分页方法(不用存储过程)

导读:   asp+sqlserver 分页方法(不用存储过程)   我的一个ASP + sqlserver的分页程序:这个程序的特点就是指将当前页的纪录掉到页面上来。性能不错,而且不用存储过程,由...
  • chief1985
  • chief1985
  • 2007年12月11日 16:51
  • 914

MSSQL 存储过程分页 测试 1

没有进行仔细的测试 只是对算法进行了点研究参考了别人的存储过程分页的算法 再加上自己想的declare @TotalRecord realdeclare @Page_Size realdeclare ...
  • slightboy
  • slightboy
  • 2004年10月18日 10:52
  • 999

MSSQL 存储过程分页 测试 3

DECLARE @User_Condition varchar(500)DECLARE @User_Sort varchar(20)DECLARE @User_Rank varchar(4)DECLA...
  • slightboy
  • slightboy
  • 2004年10月18日 15:11
  • 623

SQL Server2005及以上 存储过程分页方法分享

最近实习期间,项目开发过程中遇到了分页问题,问题如下:         在项目开发过程中,往往会遇到展示展示内容的问题。当内容数量不多的时候,我们直接用一条“SELECT * FROM ...”将去不...
  • dzyhenry
  • dzyhenry
  • 2014年03月29日 10:25
  • 2071

大数据量分页存储过程效率测试附测试代码与结果

测试环境 硬件:CPU 酷睿双核T5750 内存:2G 软件:Windows server 2003 + sql server 2005 OK,我们首先创建一数据库:data_Test,并在此数据库中...
  • hliq5399
  • hliq5399
  • 2016年03月29日 16:38
  • 981

多表联合查询sql存储过程带分页

多表联合查询sql存储过程带分页
  • mofijeck
  • mofijeck
  • 2015年03月04日 14:56
  • 1537
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MSSQL 存储过程分页 测试 4
举报原因:
原因补充:

(最多只允许输入30个字)