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

相关推荐
zzqssliu10 分钟前
Taocarts接口限流实操:基于Redis实现API防刷与流量管控
数据库·redis·缓存
啦啦啦啦啦zzzz31 分钟前
redis的持久化操作和主从复制与集群的关系及其应用
数据库·redis
IT策士1 小时前
Redis 从入门到精通:分片之道 —— Redis Cluster
数据库·redis·缓存
AOwhisky1 小时前
学习自测与解析:Redis系列第一期与第二期核心知识点详解
运维·数据库·redis·学习·云计算
kishu_iOS&AI2 小时前
LLM —— Milvmus向量数据库
数据库·人工智能·milvus
名不经传的养虾人2 小时前
从0到1:企业级AI项目迭代日记 Vol.46|三个检索源、缓存限流、深度整合——联网检索一日冲刺
数据库·人工智能·agent·ai编程·ai工作流·企业ai
BugShare2 小时前
Mac 上原生开发的开源免费、尽享丝滑数据库工具
数据库·macos·开源
Java爱好狂.2 小时前
阿里1658页2026最新Java面试题总结(含答案)
数据库·redis·程序员·java面试·java面试题·java编程·java八股文
jieyucx2 小时前
《Go 数据库编程开篇:彻底打通 database/sql 与 MySQL 驱动的连接池调优密码》
数据库·sql·golang
白露与泡影2 小时前
深入理解MySQL事务隔离级别:MVCC机制与Next-Key Lock如何解决幻读问题?
数据库·mysql