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中设置定时作业执行该存储过程:

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

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

相关推荐
白云如幻33 分钟前
MySQL子查询介绍和where后的标量子查询
数据库·mysql
小玉起起38 分钟前
Redis Key 命名规范文档
数据库·redis·缓存
gma9991 小时前
ES 基本使用与二次封装
大数据·数据库·c++·elasticsearch·搜索引擎
weixin_449310841 小时前
聚水潭与MySQL数据集成案例分享
android·数据库·mysql
Ljw...1 小时前
C/C++链接数据库(MySQL)(超级详细)
数据库·mysql·c/c++链接数据库
马船长2 小时前
蓝网科技临床浏览系统存在SQL注入漏洞
数据库·sql·科技
东阳马生架构2 小时前
MySQL原理简介—10.SQL语句和执行计划
数据库·mysql
Ljw...4 小时前
图形化界面MySQL(MySQL)(超级详细)
数据库·mysql·图形化界面mysql
@小小小吴5 小时前
mysql安装---rpm包
数据库·mysql
王ASC7 小时前
JDBC使用p6spy记录实际执行SQL方法【解决SQL打印两次问题】
数据库·sql