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

相关推荐
ClouGence3 小时前
SQL Server CDC 能放到 Always On 备库读吗?一文讲透原理与实践
数据库·sql server
先吃饱再说20 小时前
存储的进化:从 MySQL 到浏览器缓存,数据到底住在哪?
数据库
Nturmoils20 小时前
字段太多看不全,ksql 的展开模式和输出控制怎么用
数据库·后端
Databend1 天前
Agent 轨迹分析与归因的数据工程实践
大数据·数据库·agent
这个DBA有点耶1 天前
SQL改写进阶:标量子查询的“隐形代价”与消除实战
数据库·mysql·架构
smallyoung1 天前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·mysql·postgresql
parade岁月1 天前
MySQL JOIN解析:朴实无华但食之有味
数据库·后端
用户3169353811831 天前
MySQL服务无法启动问题解决全记录
数据库
vivo互联网技术1 天前
从 10 分钟到 1 秒:ES 深度分页任意跳页的三轮优化实战
服务器·数据库·redis·elasticsearch·深度分页
倔强的石头_2 天前
《Kingbase护城河》——猎捕慢查询:执行计划的微观解析与索引调优实战
数据库