MSSQL 游标使用实例

DECLARE  MyCURSOR  CURSOR
FOR
select  iGlideNum,sAccFlag,a.sDeptNo,sAccMan,ENT_Mobil,dAccDate,dSFinishDate  from  EG_SHL_ACCEPT  as  a,EG_SYS_ENTRY  as  e  where  sAccMan = ENT_Name  and  sAccFlag  like   ' ____x[3,4,5] '
OPEN  MyCURSOR
declare   @iGlideNum   varchar ( 20 )
declare   @sAccFlag   varchar ( 6 )
declare   @sDeptNo   varchar ( 20 )
declare   @sAccMan   varchar ( 10 )
declare   @ENT_Mobil   varchar ( 20 )
declare   @dAccDate   DateTime
declare   @dSFinishDate   DateTime
fetch   next   from  MyCURSOR  into   @iGlideNum , @sAccFlag , @sDeptNo , @sAccMan , @ENT_Mobil , @dAccDate , @dSFinishDate
while ( @@fetch_status = 0 )
  
begin
    
declare   @iOverTime   int
    
declare   @NowDate   DateTime
    
select   top   1   @iOverTime = iOverTime  from  EG_SYS_PARAM
    
select   @NowDate = getdate ();
    
if   cast ( convert ( varchar ( 10 ), @NowDate , 120 as   DateTime ) >   @dSFinishDate   and   cast ( convert ( varchar ( 10 ), @dSFinishDate , 120 as   DateTime ) <  ( cast ( convert ( varchar ( 10 ), @NowDate , 120 as   DateTime ) + @iOverTime )
    
begin
        
if   @dSFinishDate + @iOverTime < cast ( convert ( varchar ( 10 ), @NowDate , 120 as   DateTime )
        
begin
            
insert   into  EG_DB_WARNINGINFO(iGlideNum,sWarnNode,sWarnType,sWarnText,sWarnMan,sWarnObject,sWarnCategory,sDeptNo,sWarnWay)  values ( @iGlideNum , @sAccFlag , 1 , ' 你受理的项目( ' + @iGlideNum + ' )结办日期为 ' + convert ( varchar ( 10 ), @dSFinishDate , 120 ) + ' ,现已超过超期警告办理时间,给予一张红牌警告,请尽快办理。 ' , ' 自动 ' , @sAccMan , 0 , @sDeptNo , 0 )
            
insert   into  EG_DB_WARNINGBACK(sWarnText,sWarnMolOrMail,sWarnTpyes)  values ( ' 你受理的项目( ' + @iGlideNum + ' )结办日期为 ' + convert ( varchar ( 10 ), @dSFinishDate , 120 ) + ' ,现已超过超期警告办理时间,给予一张红牌警告,请尽快办理。 ' , @ENT_Mobil , 0 )
        
end   else
        
begin
            
insert   into  EG_DB_WARNINGINFO(iGlideNum,sWarnNode,sWarnType,sWarnText,sWarnMan,sWarnObject,sWarnCategory,sDeptNo,sWarnWay)  values ( @iGlideNum , @sAccFlag , 0 , ' 你受理的项目( ' + @iGlideNum + ' )结办日期为 ' + convert ( varchar ( 10 ), @dSFinishDate , 120 ) + ' ,现已超期,给予一张黄牌警告,请尽快办理。 ' , ' 自动 ' , @sAccMan , 0 , @sDeptNo , 0 )
            
insert   into  EG_DB_WARNINGBACK(sWarnText,sWarnMolOrMail,sWarnTpyes)  values ( ' 你受理的项目( ' + @iGlideNum + ' )结办日期为 ' + convert ( varchar ( 10 ), @dSFinishDate , 120 ) + ' ,现已超期,给予一张黄牌警告,请尽快办理。 ' , @ENT_Mobil , 0 )
        
end     
    
end
        
fetch   next   from  MyCURSOR  into   @iGlideNum , @sAccFlag , @sDeptNo , @sAccMan , @ENT_Mobil , @dAccDate , @dSFinishDate
  
end
close  MyCURSOR
deallocate  MyCURSOR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值