单个分页的存储过程

/*
Descript:单页数据存储过程
Author:XQF222
Date:10:38 2007-7-31
*/
CREATE  PROCEDURE SP_SinglePageData(
@TableName  nvarchar(200),            ----要显示的表或多个表的连接
@SelectFields  nvarchar(200) = '*',      ----要显示的字段列表
@PrimaryFiled  nvarchar(50),    ----主表的主键
@SortField nvarchar(100) = null,        ----排序字段列表或条件
@SortOrder  bit = 0,             ----排序方法,0为升序,1为降序
@SelectCondition nvarchar(200) = null, ----不带where字符串的查询条件
@TotalCounts int  output          ----返回查询到的记录总数
)
AS
Declare @sqlTmp nvarchar(1000)  ----存放动态生成的SQL语句
Declare @strTmp nvarchar(1000)  ----存放取得查询结果总数的查询语句
Declare @sqlSort nvarchar(200)  ----存放临时生成的排序条件

--生成查询语句--------
--此处@strTmp为取得查询结果数量的语句
if @SelectCondition is null --没有设置显示条件
 begin
 set @sqlTmp =  'select ' + @SelectFields + '  From ' + @TableName
 set @strTmp = 'select  @TotalCounts=Count(' + @PrimaryFiled + ')  FROM '+@TableName
 end
else
 begin
 set @sqlTmp =  'select ' + @SelectFields + ' From ' + @TableName + ' where ' +

@SelectCondition
 set @strTmp = 'select @TotalCounts=Count(' + @PrimaryFiled + ')  FROM '+@TableName + '

where ' + @SelectCondition
 end
--取得查询结果总数量-----

exec sp_executesql @strTmp,N'@TotalCounts int out ',@TotalCounts out
--print @TotalCounts
--生成排序字符串
if @SortOrder=0  --升序
begin
   if not(@SortField is null)
  set @sqlSort = ' Order by ' + @SortField
   else
  set @sqlSort = ' Order by ' + @PrimaryFiled 
end
else     --降序
begin
 if not(@SortField is null)
  set @sqlSort = ' Order by ' + @SortField + ' DESC' 
 else
  set @sqlSort = ' Order by ' + @PrimaryFiled + ' DESC '
end
--生成最终查询字符串
if @sqlSort is null
set @sqlTmp = @sqlTmp
else
set @sqlTmp = @sqlTmp + @sqlSort
--print @sqlTmp
exec sp_executesql @sqlTmp
GO
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疾风铸境

提供工作中碰到的和研究过的技术

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值