朋友给的分页存储过程
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
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