zoukankan      html  css  js  c++  java
  • 临时表循环插入

    ALTER PROCEDURE [dbo].[Writelogin]
    AS
    BEGIN
    DROP TABLE #temp --删除临时表
    create table #temp --创建临时表
    (
      id int identity(1,1), --主键ID
      Name nvarchar(50),--司机
      Num nvarchar(50), --编号
      NextExamDate DATETIME, --行驶证下次年检
      DrivrQualificationLimitedDate DATETIME, --从业资格证
      NextDDTDate DATETIME,--DDT培训
      NextPhysicalCheckDate DATETIME, --FT培训
      NextTiredTrainDate DATETIME -- 体检
    )


    --声明字段
    declare @rows INT
    declare @n  int
    declare @driverName nvarchar(50)
    declare @driverNum nvarchar(50)
    declare @NextExamDate DATETIME
    declare @DrivrQualificationLimitedDate DATETIME
    declare @NextDDTDate DATETIME
    declare @NextPhysicalCheckDate DATETIME
    declare @NextTiredTrainDate DATETIME
    declare @ErrorMessage nvarchar(1000)
    select @n=1
    SET @ErrorMessage=''  --复制初始变量 否则 NULL+字符串=Null

    --插入符合条件的数据放到临时表
    insert #temp(NAME,Num,NextExamDate,DrivrQualificationLimitedDate,NextDDTDate,NextPhysicalCheckDate,NextTiredTrainDate) select NAME,Num,NextExamDate,DrivrQualificationLimitedDate,NextDDTDate,NextPhysicalCheckDate,NextTiredTrainDate
      FROM Driver WHERE  [Deleted]=0  AND (CONVERT(varchar(100), GETDATE(), 102)> NextExamDate
    OR CONVERT(varchar(100), GETDATE(), 102)> DrivrQualificationLimitedDate
    OR CONVERT(varchar(100), GETDATE(), 102)> NextDDTDate
    OR CONVERT(varchar(100), GETDATE(), 102)>NextPhysicalCheckDate
    OR CONVERT(varchar(100), GETDATE(), 102)>NextTiredTrainDate)

    select @rows = @@rowcount --查询表行数

    while @n <= @rows --是否大于表行数
    begin

    select @driverName=[Name],@driverNum=Num,@NextExamDate=NextExamDate,@DrivrQualificationLimitedDate=DrivrQualificationLimitedDate,@NextDDTDate=NextDDTDate,@NextPhysicalCheckDate=NextPhysicalCheckDate,@NextTiredTrainDate=NextTiredTrainDate FROM #temp WHERE id=@n

    IF(CONVERT(varchar(100), GETDATE(), 102)> @NextExamDate)
    BEGIN
      set @ErrorMessage += '行驶证下次年检日过期;';
    END

    IF(CONVERT(varchar(100), GETDATE(), 102)> @DrivrQualificationLimitedDate)
    BEGIN
     set @ErrorMessage +='从业资格证过期;';
    END

    IF(CONVERT(varchar(100), GETDATE(), 102)> @NextDDTDate)
    BEGIN
     set @ErrorMessage +='DDT培训过期;';
    END

    IF(CONVERT(varchar(100), GETDATE(), 102)> @NextPhysicalCheckDate)
    BEGIN
     set @ErrorMessage +='FT培训过期;';
    END

    IF(CONVERT(varchar(100), GETDATE(), 102)> @NextTiredTrainDate)
    BEGIN
     set @ErrorMessage += '司机体检过期;';
    END

    SET @ErrorMessage=@driverNum+'-'+@driverName+' '+@ErrorMessage;
    INSERT SysLogRecord(Cperator,IP,DEPT,[Content],YesOrNo,SystTme,LogType) values('System','','System',@ErrorMessage,1,getdate(),'系统处理');
    select @n = @n + 1

    end
    END

  • 相关阅读:
    边推改革边上“保险” 央行“双降”两大亮点带来哪些变化
    今天走势将冲高回落后重新回归下跌周期
    小心!资本正在流出中国:国际收支表里被遗漏的-2547亿美元
    价格改革确立时间表和路线图 六大重点领域破题
    避免在办公室体重上升的三大良策
    别再说自己有多忙
    沪指可能展开一波3个交易日的调整
    专车新政博弈 垄断行业改革样本
    JS和CS互访【后台前台代码调用JavaScript变量以及JavaScript调用代码变量】
    net9:图片文件转换成二进制流存入SQL数据库,以及从数据库中读取二进制流输出文件
  • 原文地址:https://www.cnblogs.com/liuruitao/p/4950516.html
Copyright © 2011-2022 走看看