SQL分页参数传值 在存储过程中使用 动态SQL实现

 PROCEDURE [dbo].[SP_GetList]
(
   @ParkUserId varchar(100),
   @arrearsStatus int,
   @lastID int=0,  --最小ID
   @pageSize int=10, --每页显示记录数
   @CityCode varchar(50)
   )
AS
    declare  @DICT_Berth  nvarchar(100);
   declare  @strSQL0 nvarchar(max);--定义变量,注意类型
BEGIN
 
 set @DICT_Berth='DICT_Berth_'+@CityCode+'';

   IF(@arrearsStatus IS not NULL AND @arrearsOrderCode IS NULL)
    
     BEGIN
     set   @strSQL0='select top ('+convert(nvarchar(100),@pageSize)+')
     
     CONVERT(varchar(100), TB.StartTime,120) as  StartTime
     FROM TRA_Order AS tao 
     
     where tao.ParkUserId='+@ParkUserId+' and
     tao.AStatus= '+convert(nvarchar(100),@arrearsStatus)+' 
     AND  (( '+convert(nvarchar(100),@lastID)+' > 0 AND tao.OrderId < '+convert(nvarchar(100),@lastID)+') OR '+convert(nvarchar(100),@lastID)+'=0 )
     ORDER BY  tao.OrderId , tao.AddTime DESC
     ';

    END 
    
    

END begin transaction begin try BEGIN EXECUTE SP_EXECUTESQL @strSQL0 ; END commit transaction end try begin catch print '执行存储异常' rollback transaction end catch

 

 

where (( @lastID > 0 AND Meb_ID < @lastID) OR @lastID=0 )  and
 CONVERT(varchar(100), MB.AddTime, 23)>CONVERT(varchar(100), @StartTime, 23) 
 AND 
 CONVERT(varchar(100), MB.AddTime, 23)<CONVERT(varchar(100), @EndTime, 23)

 

 

(( '+convert(nvarchar(100),@lastID)+' > 0 AND OrderID < '+convert(nvarchar(100),@lastID)+') OR '+convert(nvarchar(100),@lastID)+'=0 )
     ORDER BY OrderID ,AddTime DESC

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值