1
2
3
4
5
6
7
CREATE PROCEDURE page
8
@PageIndex int , /*当前页数*/
9
@PageSize int /*每页大小*/
10
AS
11
12
13
IF @PageIndex > 0
14
BEGIN
15
DECLARE @PageLowerBound int
16
DECLARE @StartID int
17
DECLARE @sql varchar(225)
18
19
SET @PageLowerBound = @PageSize * (@PageIndex-1)
20
21
SET ROWCOUNT @PageLowerBound
22
23
SELECT @StartID = [id] FROM table ORDER BY id desc
24
25
SET ROWCOUNT 0
26
27
28
SET @sql='select top '+str(@PageSize) +' COLUMNS from table where and [id]>'+ str(@StartID) +' ORDER BY id '
29
30
EXEC(@sql)
31
END
32

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

如果大家不喜欢用游标,那就将下面部分改为
1
SET ROWCOUNT @PageLowerBound
2
3
SELECT @StartID = [id] FROM table ORDER BY id desc
4
5
SET ROWCOUNT 0

2

3

4

5

不使用游标的方法
1
2
set sql='SELECT top ' +str(PageLowerBound)+ ' @startID=[id] FROM table ORDER BY id desc'
3
exec(sql)
4

2

3

4
