sql:定时执行存储过程(嵌套存储过程、使用游标)

sql 复制代码
BEGIN
    
    Declare @FormNo  nvarchar(20)    --单号
    Declare @Type  nvarchar(50)  --类型
    Declare @PickedQty float    -
    Declare @OutQty float  
    Declare @生产量 float
    Declare @已装箱数量 float 
    Declare @已入库数量 float
    Declare @损耗数量 float 
    Declare @退货品出库数量 int

    declare k cursor for select 单号,类型,勾选数量,出库数量,生产量,已装箱数量,已入库数量,损耗数量,[退货品出库数量] from SCBB_CPSCD_QUERY WHERE 制单日期   >= DATEADD(WEEK, -1, GETDATE())
    OPEN k
    fetch next from k into @FormNo,@Type,@PickedQty,@OutQty,@生产量,@已装箱数量,@已入库数量,@损耗数量,@退货品出库数量
    while @@Fetch_status=0
    begin
        IF (@Type IN ('常规','样品', '委外','筛选','全检','补货','委外补货','受托加工','返工') 
    AND @PickedQty = @OutQty 
    AND @生产量 = @已装箱数量 
    AND @生产量 = @已入库数量 
    AND ISNULL(@损耗数量,0) = 0) 
    OR 
    (@FinishProductType = '返修' 
    AND ISNULL(@退货品出库数量,0) <> 0
    AND @生产量 = @退货品出库数量 
    AND ISNULL(@损耗数量,0) = 0)
        BEGIN 
            EXEC SCJH_CPSCD_CLOSE_PROC @FormNo = @FormNo,@CloseRemarks = null,@Results = '000',@Msg = null
        END

    fetch next from k into @FormNo,@Type,@PickedQty,@OutQty,@生产量,@已装箱数量,@已入库数量,@损耗数量,@退货品出库数量
    END     
    close k
    deallocate k

SCJH_CPSCD_CLOSE_PROC 存储过程是有四个输入参数的,所以EXEC的时候需要带上他的四个参数。

在sql server中设置定时作业执行该存储过程:

在步骤里设置要执行的存储过程

然后在作业里设置执行时间就可以啦

相关推荐
李燚4 分钟前
LLM 可靠性设计:Retry + Failover 源码拆解(第58篇-E44)
数据库
乐橙开放平台12 分钟前
养殖 SaaS 笔记:乐橙 IoT 物模型管环境,视频 OpenAPI 管回看
数据库·笔记·物联网·mysql·音视频
草莓熊Lotso15 分钟前
【LangChain】输出解析器全解:让大模型输出从 “聊天” 变 “机器可读”
服务器·数据库·python·langchain·pip
GuWenyue37 分钟前
放弃云端API!5套技术栈实战WebGPU端侧AI,前端独立跑本地大模型,省成本还保隐私
前端·数据库·人工智能
鸽芷咕2 小时前
MySQL/PostgreSQL 迁移金仓 KES:LEFT JOIN 丢数据排查与避坑指南
数据库·mysql·postgresql
Csvn11 小时前
📊 SQL 入门 Day 7:子查询 — 查询中的查询
后端·sql
2401_8414956412 小时前
【数据结构】B+树
数据结构·数据库·c++·b+树·概念·结构·操作原理
Hardworking66614 小时前
第7章 软硬件系统集成
数据库·软硬件系统集成
名字还没想好☜14 小时前
Go 的 time.Ticker 陷阱:定时任务里被忽略的内存泄漏与正确关闭
java·数据库·golang·go·定时器