逍遥网外-程序人生-脚印
分享,交流,提高
社区
新随笔
管理
随笔- 8 文章- 0 评论- 17
2008年7月2日
经常用到的一个分页存储过程
.net分页调用时与AspNetPager结合很好用的。
1
CREATE
procedure
Common_PageList(
2
@select_list
varchar
(
1000
)
=
'
*
'
,
--
不需要select
3
@table_name
varchar
(
1000
),
4
@where
varchar
(
1000
)
=
''
,
--
不需要where
5
@primary_key
varchar
(
100
),
--
当是表联合时,加表名前缀.
6
@order_by
varchar
(
200
),
--
需要完整的子句
7
@page_size
smallint
=
20
,
--
每页记录
8
@page_index
int
=
1
,
--
页索引
9
@bl_page
int
=
1
)
--
0 取所有记录集
10
as
11
12
13
declare
@sql_str
varchar
(
8000
)
14
declare
@record_min
int
15
declare
@new_where
varchar
(
1000
),
@newin_where
varchar
(
1000
)
16
if
@where
=
''
--
重新为梳理,此过程时性能的考虑,因此不使用 where 1=1 再追加条件。
17
begin
18
select
@new_where
=
''
19
select
@newin_where
=
''
20
end
21
else
22
begin
23
select
@new_where
=
'
and
'
+
@where
24
select
@newin_where
=
'
where
'
+
@where
25
end
26
27
if
@order_by
!=
''
28
begin
29
select
@order_by
=
'
order by
'
+
@order_by
30
end
31
32
if
@bl_page
=
0
33
select
@sql_str
=
'
select
'
+
@select_list
+
'
from
'
+
@table_name
+
'
'
+
@newin_where
+
'
'
+
@order_by
34
else
35
if
@page_index
=
1
36
if
@where
=
''
37
select
@sql_str
=
'
select top
'
+
convert
(
varchar
,
@page_size
)
+
'
'
+
@select_list
+
'
from
'
+
@table_name
+
'
'
+
@order_by
38
else
39
select
@sql_str
=
'
select top
'
+
convert
(
varchar
,
@page_size
)
+
'
'
+
@select_list
+
'
from
'
+
@table_name
+
'
where
'
+
@where
+
'
'
+
@order_by
40
else
41
begin
42
select
@record_min
=
(
@page_index
-
1
)
*
@page_size
43
select
@sql_str
=
'
select top
'
+
convert
(
varchar
,
@page_size
)
+
'
'
+
@select_list
+
'
from
'
+
@table_name
+
'
where
'
+
@primary_key
+
'
not in
'
44
select
@sql_str
=
@sql_str
+
'
(select top
'
+
convert
(
varchar
,
@record_min
)
+
'
'
+
@primary_key
+
'
from
'
+
@table_name
+
@newin_where
+
'
'
+
@order_by
+
'
)
'
45
select
@sql_str
=
@sql_str
+
@new_where
+
'
'
+
@order_by
46
end
47
print
@sql_str
48
exec
(
@sql_str
)
49
50
51
select
@sql_str
=
'
select 1 from
'
+
@table_name
+
'
'
+
@newin_where
52
exec
(
@sql_str
)
53
54
return
@@rowcount
55
56
57
posted @
2008-07-02 09:33
逍遥网外 阅读(159) |
评论 (0)
|
编辑
<
2008年7月
>
日
一
二
三
四
五
六
29
30
1
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
1
2
3
4
5
6
7
8
9
与我联系
发短消息
搜索
留言簿
给我留言
查看留言
我的标签
it(1)
aspnetpager(1)
pagelist(1)
分页(1)
ajax(1)
cookies(1)
javascript(1)
登录框(1)
隐藏(1)
随笔分类
.net技术(5)
(rss)
dotlucene使用
(rss)
分词技术
(rss)
爬虫技术
(rss)
商业搜索招聘(3)
(rss)
随笔档案
2008年7月 (2)
2007年6月 (1)
2007年5月 (5)
最新评论
阅读排行榜
1. div隐藏层登录框及使用ajax写入cookies心得(2376)
2. 高薪急聘搜索引擎开发工程师(660)
3. 经常用到的一个分页存储过程(159)
4. 垂直搜索融资方向还有吗?(158)
5. 利用C#实现分布式数据库查询(147)
评论排行榜
1. div隐藏层登录框及使用ajax写入cookies心得(8)
2. 高薪急聘搜索引擎开发工程师(6)
3. 商业搜索项目准备启动,正式开始招聘人马(1)
4. 利用C#实现分布式数据库查询(1)
5. 垂直搜索融资方向还有吗?(1)