sybase分页存储过程的实现

sybase分页存储过程的实现
复制create procedure SP_PHP_PAGE @qry varchar(16384),分页@iStart int, @iLimit int, @sKeyFiled  varchar(32) as    /*@qry SQL语句, @iStart 开始, @iLimit 结束,@sKeyFiled 表中的主键 */   begin   declare @execsql varchar(16384)   declare @execsqltmp varchar(16384)   /*定义临时表表名*/   declare @dt varchar(10) --生成临时表的亿华云随机数   set @dt=substring(convert(varchar, rand()), 3, 10)   --一个字符型的云南idc服务商随机数   set rowcount @iLimit      if(@sKeyFiled is null)   begin       set @execsql = stuff(@qry,charindex(select,@qry),6,select number(*) as sybid,)              set @execsqltmp =  select * from #temptable + @dt +  where sybid> || convert(varchar,@iStart) ||  and sybid <=  || convert(varchar,(@iStart/@iLimit+1)*@iLimit)     end   else   begin   set @execsql = stuff(@qry,charindex(select,@qry),6,select number(*) as sybid, || @sKeyFiled ||  ,@ )             set @execsql =  stuff(@execsql,charindex(,@,@execsql),charindex(from,@execsql)-charindex(,@,@execsql), )             set @execsqltmp =  select || @sKeyFiled || from #temptable + @dt +  where sybid> || convert(varchar,@iStart) ||  and sybid <=  || convert(varchar,(@iStart/@iLimit+1)*@iLimit)     set @execsqltmp = stuff(@qry,charindex(where,@qry),5, where || @sKeyFiled ||  in (|| @execsqltmp ||) and )      end   set @execsql = stuff(@execsql, charindex(from,@execsql),4,into #temptable + @dt +  from)   select (@execsql) as sql, @execsqltmp as sqlTmp   set rowcount 0   end   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.b2b供应网
人工智能
上一篇:办公电脑教程(提升办公效率,掌握Windows操作技巧)
下一篇:如何自动生成Word文档目录的序号(简便有效的方法让你省时省力)