通用存储过程
来源:互联网 发布:女尊小说软件 编辑:程序博客网 时间:2024/04/30 19:32
CREATE procedure [dbo].[proc_GetPageOfRecords]
@tabName varchar(200), --表名如:stuInfo a,stuInfo b
@columns varchar(1000) = '*', --查询的列名如:a.id,b.stuName
@condition varchar(1000) = '', --查询条件如:不需要加where
@ascColumn varchar(100) = '', --排序的字段名(id desc等等),如果为空则根据主键ID倒序来排列
@returnValue int = -1 output, --返回值
@pageSize int, --每页显示大小
@currentPage int, --当前页
@primaryId varchar(20) --默认的ID
as
declare @sql nvarchar(1800)
declare @startid int
declare @endid int
declare @pagecount int
if @condition is null or @condition = '' --判断条件是否为空来拼接查询语句
set @sql = N'select @returnValue=count(*) from ' + @tabName
else
set @sql = N'select @returnValue=count(*) from ' + @tabName + ' where ' + @condition
exec sp_executesql @sql,N'@returnValue int output',@returnValue output
if @returnValue is null
set @returnValue=0
if @ascColumn = '' --如果为空,根据主键ID倒序排列
set @ascColumn = @primaryId + ' desc '
set @pagecount = @returnValue / @pagesize
if @returnValue % @pagesize <> 0
set @pagecount = @pagecount + 1
if @currentpage > @pagecount
set @currentpage = @pagecount
set @startid = (@currentpage - 1) * @pagesize + 1
set @endid = @startid + @pagesize - 1
if @condition is null or @condition = ''
set @sql = N'select * from(select '+@columns+ ',ROW_NUMBER() OVER (order by '+ @ascColumn +') as pos from ' + @tabName
else
set @sql = N'select * from(select '+@columns+ ',ROW_NUMBER() OVER (order by '+ @ascColumn +') as pos from ' + @tabName + ' where ' + @condition
set @sql = @sql + ') as t where t.pos between ' + convert(varchar(10),@startid) + ' and ' + convert(varchar(10),@endid)
exec sp_executesql @sql
return @returnValue
go
- 通用存储过程函数
- 通用分页存储过程
- 通用存储过程分页
- 通用分页存储过程
- 通用分页存储过程
- 通用分页存储过程
- 通用分页存储过程
- 通用分页存储过程
- 通用分页存储过程
- 通用分页存储过程
- 通用分页存储过程
- 通用分页存储过程
- 通用分页存储过程
- 通用分页存储过程
- 通用分页存储过程
- 通用存储过程分页
- 通用分页存储过程
- 通用分页存储过程
- 一个函数分析(s3c2410_gpio_setpin),浅析ARM GPIO地址转换
- Java文件操作
- 索尼爱立信在Android Market中另起炉灶
- [转]嵌入式linux GUI--DirectFB + GTK至尊秘笈
- C语言中回车符
- 通用存储过程
- 小白成长记
- sizeof不是函数,是操作符
- 2731: Greedyman 求凸包周长
- time,gettimeofday,clock_gettime,_ftime
- ADSL(PPPOE)接入指南
- SQL Server判断文件是否存在后再删除
- iPhone memory manage
- 如何选择MongoDB的分片字段(Shard Key)