转自http://www.cnblogs.com/Tracy-Chuang/archive/2006/10/16/530125.html

毕竟人家 都有提出要求了 我当然要写出处了 好好研究一下得

通用的分页存储过程,效率高。在SQL Server2000/2005上调试通过。

通用的分页存储过程(少量代码实现)-- =============================================
通用的分页存储过程(少量代码实现)--
 Author:  <张婷婷>
通用的分页存储过程(少量代码实现)--
 Create date: <2006-08-24>
通用的分页存储过程(少量代码实现)--
 Description: <通用分页存储过程>
通用的分页存储过程(少量代码实现)--
 =============================================
通用的分页存储过程(少量代码实现)
Create PROCEDURE [dbo].[spCommonPageData]
通用的分页存储过程(少量代码实现) 
@Select NVARCHAR(500),   -- 要查询的列名,用逗号隔开(Select后面From前面的内容)
通用的分页存储过程(少量代码实现)
 @From NVARCHAR(200),   -- From后的内容
通用的分页存储过程(少量代码实现)
 @Where NVARCHAR(500= NULL-- Where后的内容
通用的分页存储过程(少量代码实现)
 @OrderBy NVARCHAR(100= NULL-- 排序字段
通用的分页存储过程(少量代码实现)
 @Key NVARCHAR(50),    -- 分页主键
通用的分页存储过程(少量代码实现)
 @Page INT,      -- 当前页 ***计数从1开始***
通用的分页存储过程(少量代码实现)
 @PageSize INT,     -- 每页大小
通用的分页存储过程(少量代码实现)
 @TotalCount INT OUTPUT,   -- 总记录数
通用的分页存储过程(少量代码实现)
 @Result TINYINT OUTPUT   -- 执行是否成功
通用的分页存储过程(少量代码实现)
AS
通用的分页存储过程(少量代码实现)
BEGIN
通用的分页存储过程(少量代码实现) 
SET NOCOUNT ON;
通用的分页存储过程(少量代码实现)
通用的分页存储过程(少量代码实现) 
Declare @Sql nVarchar(1000), @Sql2 NVARCHAR(500)
通用的分页存储过程(少量代码实现)
通用的分页存储过程(少量代码实现)
--Alter By Tracy.Chuang 2006-08-21更改分页算法,采用比较最大值的方法
通用的分页存储过程(少量代码实现)
 Set @Sql=
通用的分页存储过程(少量代码实现) 
'Select Top '+Cast(@PageSize As
通用的分页存储过程(少量代码实现) 
nVarchar(10))+' '+@Select+  ' From '+@From+  ' Where '+Case
通用的分页存储过程(少量代码实现) 
IsNull(@Where,''When '' Then '' Else @Where+' And ' End+
通用的分页存储过程(少量代码实现) 
@Key+' >( Select ISNULL(MAX('+@Key+'), 0) AS MaxID
通用的分页存储过程(少量代码实现)    From (Select Top 
'+Cast(@PageSize*(@Page-1As Varchar(10))+' 
通用的分页存储过程(少量代码实现) 
'+@Key+
通用的分页存储过程(少量代码实现)       
' From '+@From+
通用的分页存储过程(少量代码实现)       
Case IsNull(@Where,''When '' Then '' Else ' Where '+@Where End+
通用的分页存储过程(少量代码实现)       
' Order By '+@Key+') As T)'+
通用的分页存储过程(少量代码实现) 
' Order By '+@Key+Case IsNull(@OrderBy,''When '' Then '' Else
通用的分页存储过程(少量代码实现) 
','+@OrderBy End
通用的分页存储过程(少量代码实现)
通用的分页存储过程(少量代码实现) 
Exec(@Sql)
通用的分页存储过程(少量代码实现)
通用的分页存储过程(少量代码实现) 
Set @Sql2='Select 1 As Count From '+@From+Case IsNull(@Where,''When
通用的分页存储过程(少量代码实现)  
'' Then '' Else ' Where '+@Where End
通用的分页存储过程(少量代码实现) 
Exec(@Sql2)
通用的分页存储过程(少量代码实现) 
SET @TotalCount = @@ROWCOUNT
通用的分页存储过程(少量代码实现) 
通用的分页存储过程(少量代码实现) 
SET @Result = 0
通用的分页存储过程(少量代码实现)
END

相关文章:

  • 2021-05-26
  • 2022-01-31
  • 2022-01-13
  • 2021-06-15
  • 2022-12-23
  • 2021-07-03
  • 2021-11-02
猜你喜欢
  • 2021-12-19
  • 2022-02-07
  • 2022-02-28
  • 2021-12-23
  • 2021-06-26
  • 2022-12-23
相关资源
相似解决方案