U8/领料申请单SQL server触发器,如果自定义项13有值,把数量修改成件数乘以自定义项13,如果恰好件数等于现存量,则数量同步出空

-- ================================================

-- Template generated from Template Explorer using:

-- Create Trigger (New Menu).SQL

--

-- Use the Specify Values for Template Parameters

-- command (Ctrl-Shift-M) to fill in the parameter

-- values below.

--

-- See additional Create Trigger templates for more

-- examples of different Trigger statements.

--

-- This block of comments will not be included in

-- the definition of the function.

-- ================================================

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

-- =============================================

-- Author: <Author,,Name>

-- Create date: <Create Date,,>

-- Description: <Description,,>

-- =============================================

CREATE TRIGGER DZX_MaterialAppVouchs_iQuantity

ON MaterialAppVouchs

AFTER INSERT ,UPDATE

AS

BEGIN

SET NOCOUNT ON;

IF EXISTS (SELECT *

FROM inserted

LEFT JOIN (SELECT CINVCODE,cFree1,iQuantity,INUM FROM CurrentStock WHERE iQuantity <> '0' AND INUM <> '0') AS XCL

ON inserted.cInvCode = XCL.cInvCode AND inserted.cFree1 = XCL.cFree1 AND inserted.iNum = XCL.iNum

WHERE XCL.iQuantity IS NOT NULL)

BEGIN

-- ִ ޸

UPDATE MaterialAppVouchs SET MaterialAppVouchs.iQuantity = XCL.iQuantity

FROM MaterialAppVouchs

LEFT JOIN (SELECT CINVCODE,cFree1,iQuantity,INUM FROM CurrentStock WHERE iQuantity <> '0' AND INUM <> '0') AS XCL

ON MaterialAppVouchs.cInvCode = XCL.cInvCode AND MaterialAppVouchs.cFree1 = XCL.cFree1 AND MaterialAppVouchs.iNum = XCL.iNum

left JOIN inserted ON MaterialAppVouchs.AutoID = inserted.AutoID

left JOIN deleted ON MaterialAppVouchs.AutoID = deleted.AutoID

WHERE 1 = 1

AND (inserted.AutoID <> '0' OR deleted.AutoID <> '0')

AND XCL.iQuantity IS NOT NULL

END

ELSE

BEGIN

UPDATE MaterialAppVouchs SET iQuantity = MaterialAppVouchs.iNum * cInvDefine13

FROM MaterialAppVouchs

LEFT JOIN (SELECT CINVCODE, cInvDefine13 FROM Inventory WHERE cInvDefine13 <> '1') AS HSL

ON MaterialAppVouchs.cInvCode = HSL.cInvCode

left JOIN inserted ON MaterialAppVouchs.AutoID = inserted.AutoID

left JOIN deleted ON MaterialAppVouchs.AutoID = deleted.AutoID

WHERE 1 = 1

AND (inserted.AutoID <> '0' OR deleted.AutoID <> '0')

AND HSL.cInvCode IS NOT NULL

END

END

GO

相关推荐
Mahir0820 小时前
Redis 与 MySQL 数据同步:一致性保证的完整解决方案
数据库·redis·mysql·缓存·面试·数据一致性
2301_7693406720 小时前
如何在 Vuetify 中可靠捕获 Chip 关闭事件(包括键盘触发).txt
jvm·数据库·python
AC赳赳老秦20 小时前
供应链专员提效:OpenClaw自动跟踪物流信息、更新库存数据,异常自动提醒
java·大数据·服务器·数据库·人工智能·自动化·openclaw
灵犀学长21 小时前
基于 Spring ThreadPoolTaskScheduler + CronTrigger 实现的动态定时任务调度系统
java·数据库·spring
北秋,21 小时前
PostgreSQL(Postgres)数据库基础用法 + 数字型 + 字符型 完整联合注入实战
数据库·postgresql·开源
m0_596749091 天前
JavaScript中手动实现一个new操作符的底层逻辑
jvm·数据库·python
多加点辣也没关系1 天前
Redis 的安装(详细教程)
数据库·redis·缓存
数据库小学妹1 天前
数据库连接池避坑指南:告别“连接超时”与“资源耗尽”,让系统跑得更快!
数据库·redis·sql·mysql·缓存·dba
dishugj1 天前
HANA 数据库备份与恢复
数据库·oracle
前进的李工1 天前
EXPLAIN输出格式全解析:JSON、TREE与可视化
开发语言·数据库·mysql·性能优化·explain