博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL 2005通用分页存储过程
阅读量:7093 次
发布时间:2019-06-28

本文共 1542 字,大约阅读时间需要 5 分钟。

--
 =============================================
--
 Description:    <SQL2005及后续版本通用分页存储过程>调用方法: sp_Pager2005 'xtest','*','ORDER BY ID ASC','xname like ''%222name%''',2,20,0,0
--
                    适合从单个表查询数据
--
 =============================================
ALTER 
PROCEDURE 
[
dbo
].
[
Proc_GetDataPaged_2005
]
@tblName   
varchar(
255),            
--
 表名如:'xtest'
@strGetFields 
varchar(
1000
= 
'
*
',  
--
 需要返回的列如:'xname,xdemo'
@strOrder 
varchar(
255)
=
'',          
--
 排序的字段名如:'order by id desc'
@strWhere  
varchar(
1500
= 
'',      
--
 查询条件(注意:不要加where)如:'xname like ''%222name%''' 
@pageIndex 
int
=
1,                  
--
开始记录位置
@pageSize   
int 
= 
20,               
--
 每页记录数如:20
@recordCount 
int output,            
--
 记录总数
@doCount 
bit
=
0                        
--
 非0则统计,为0则不统计(统计会影响效率)
AS
declare 
@strSQL 
varchar(
5000)
declare 
@strCount 
nvarchar(
1000)
--
总记录条数
if(
@doCount
!=
0)
begin
    
if(
@strWhere 
!=
'')
    
begin
        
set 
@strCount
=
'
set @num=(select count(1) from 
'
+ 
@tblName 
+ 
'
 where 
'
+
@strWhere
+
'
 )
'
    
end
    
else
    
begin
        
set 
@strCount
=
'
set @num=(select count(1) from 
'
+ 
@tblName 
+ 
'
 )
'
    
end
    
EXECUTE sp_executesql 
@strCount ,N
'
@num INT output
',
@RecordCount output
end
if 
@strWhere 
!=
''
begin
    
set 
@strWhere
=
'
 where 
'
+
@strWhere
end
set 
@strSQL
=
'
SELECT * FROM (SELECT ROW_NUMBER() OVER (
'
+
@strOrder
+
'
) AS ROWID,
'
set 
@strSQL
=
@strSQL
+
@strGetFields
+
'
 FROM [
'
+
@tblName
+
'
'
+
@strWhere
set 
@strSQL
=
@strSQL
+
'
) AS sp WHERE ROWID BETWEEN 
'
+
str((
@pageindex
-
1)
*
@pagesize
+
1)
set 
@strSQL
=
@strSQL
+
'
 AND 
'
+
str(
@pageindex
*
@pagesize)
exec (
@strSQL)

转载于:https://www.cnblogs.com/hejunrex/archive/2011/10/26/2224895.html

你可能感兴趣的文章
终于用上了比较完美的lion 10.7.3
查看>>
【CentOS 7笔记47】,rsync文件同步工具#171205
查看>>
word2007设置标题自动编号
查看>>
Ubuntu添加自定义快捷方式
查看>>
mysql 基本操作
查看>>
我的友情链接
查看>>
Xcode 使用Git User Interface State 问题
查看>>
我在群硕实习的日子
查看>>
个人知识管理是职场必修课
查看>>
基于 Android NDK 的学习之旅----- C调用Java(附源码)
查看>>
Python主流IDE对比:Eric VS. PyCharm
查看>>
alchim31压缩js和css文件
查看>>
J2EE 之二------------------- Servlet
查看>>
python argparse
查看>>
美团客户端响应式框架 EasyReact 开源啦
查看>>
《Java并发编程的艺术》笔记
查看>>
前有BAT,后出独角兽,第二梯队很焦虑
查看>>
煲仔饭与软件测试
查看>>
ORACLE同义词总结
查看>>
在linux下安装android以及C/C++开发环境
查看>>