朋友给的分页存储过程

 

 1 ALTER procedure [dbo].[proc_EmpContract_GetAllEmpContract]
 2   @rowIndex int
 3  ,@pageSize int
 4  ,@recordCount int output
 5 AS
 6 BEGIN
 7  -- 设置页面边界。
 8     DECLARE @pageLowerBound int
 9  DECLARE @pageUpperBound int
10  SET @pageLowerBound=@rowIndex
11  SET @pageUpperBound=@rowIndex+@pageSize+1
12  set NOCOUNT ON
13  set ROWCOUNT @pageUpperBound
14 
15     -- 创建一个临时表存储所有的键值。
16     DECLARE @TEMP TABLE
17  (
18  IndexId INT IDENTITY(1,1),
19  ConId INT
20  )
21  BEGIN
22   BEGIN
23    Insert into @TEMP(ConId)
24    Select ConId from [t_EmpContract] 
25    order by ConId
26   END
27   END
28   --执行分页查询
29   BEGIN
30    SELECT 
31      con.[ConId]
32     ,con.[EmpId]
33     ,con.[Category]
34     ,con.[InDT]
35     ,con.[ConCod]
36     ,con.[JobLevel]
37     ,con.[S
38 
39 alaryLevel]
40     ,con.[Salary]
41     ,con.[Status]
42     ,con.[ConNote]
43   FROM [HRMS].[dbo].[t_EmpContract] con,@TEMP i
44   WHERE con.ConId = i.[ConId]
45   AND i.IndexId > @PageLowerBound AND i.IndexId <@PageUpperBound
46  END -- 查询判断结束。
47 
48     -- 从临时表中检索总行数。
49    SELECT @recordCount=COUNT(*FROM [t_EmpContract]
50  return
51 END
52 

posted on 2008-12-14 21:09  鱼跃于渊  阅读(150)  评论(0编辑  收藏  举报

导航