儲存過程萬能分頁

原创 2007年09月24日 18:45:00

 

 


/****** 物件:  預存程序 dbo.Pro_A_CommGetRecordByPage    指令碼日期: 2007/8/1 上午 09:43:00 ******/

 


create     PROCEDURE  [dbo].[Pro_A_CommGetRecordByPage] 
@tblName varchar(255), -- 表名 
@talFldName varchar(500)='*',--表內部所有的欄位名
@fldName varchar(255), -- 主键字段名 
@PageSize int = 10-- 页尺寸 
@PageIndex nvarchar(10= '1'-- 页码 
@IsReCount bit = 0-- 返回记录总数, 非 0 值则返回 
@OrderType bit = 0-- 设置排序类型, 非 0 值则降序 
@strWhere varchar(1000= '' -- 查询条件 (注意: 不要加 where) 
AS 

declare @strSQL varchar(7000-- 主语句 
declare @strTmp varchar(1000-- 临时变量 
declare @strOrder varchar(400-- 排序类型 

if @OrderType != 0        --根據OrderType類型決定排序號的方式
begin               
set @strTmp = '<(select min' 
set @strOrder = ' order by [' + @fldName +'] desc' 
end 
else 
begin 
set @strTmp = '>(select max' 
set @strOrder = ' order by [' + @fldName +'] asc' 
end 


set @strSQL = 'select top ' + str(@PageSize+' '+@talFldName+ '  from ['              --根據where的條件是否為空添加條件 
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '([' 
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize+ ' [' 
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)' 
+ @strOrder 


if @strWhere != '' 
set @strSQL = 'select top ' + str(@PageSize+' '+@talFldName+ '  from ['                 
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '([' 
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize+ ' [' 
+ @fldName + '] from [' + @tblName + '] where 1=1  ' + @strWhere + ' ' 
+ @strOrder + ') as tblTmp) and 1=1 ' + @strWhere + ' ' + @strOrder 

if @PageIndex = 1 
begin 
set @strTmp ='' 
if @strWhere != '' 
set @strTmp = ' where 1=1  ' + @strWhere 

set @strSQL = 'select top ' + str(@PageSize+' '+@talFldName+ '  from [' 
+ @tblName + ']' + @strTmp + ' ' + @strOrder 
end 

exec (@strSQL

 

 

 


 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

万能分页存储过程(带第一页性能优化,任意条件查询,任意字段排序)

set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO /* 分页排序存储过程 V1.0 */ create procedure [...

万能分页存储过程

万能的分页类

支持任意类型的分页样式 init(1000, 20); * $page->s

sql2005储存过程分页

gridview 万能分页代码

实现如下图片的分页:第【】页,共【】页,首页,上一页,下一页,末页 跳到某页;图片在最下面;gv里面的模板PagerTemplate复制到你的gv对应位置,然后在   protected vo...

储存过程分页

分页储存过程

---------------------------------------------------------------------存储过程---------------------------...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)