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

相关推荐
流星白龙18 小时前
【Redis】2.Redis重大版本
数据库·redis·junit
流星白龙18 小时前
【Redis】7.Hash表
数据库·redis·哈希算法
流星白龙19 小时前
【Redis】4.基本全局命令
数据库·redis·缓存
王八八。20 小时前
Navicat 17破解版下载安装教程 附安装激活步骤(2026 最新版)
数据库·navicat
Jelena1577958579221 小时前
电商运营分析数据比价接口实战:多平台价格监控与智能决策系统
java·大数据·数据库
流星白龙1 天前
【Redis】3.Redis安装与命令行客户端
数据库·redis·缓存
凌虚1 天前
基于 PostgreSQL WAL 构建 CDC 系统:原理与工程实现
数据库·后端·postgresql
BullSmall1 天前
PostgreSQL 14 pg_dumpall 完整备份指南
数据库·postgresql·oracle
一只枫林1 天前
MySQL内、外连接知识点汇总
java·前端·数据库
暮暮祈安1 天前
Celery 新手入门指南
java·数据库·python·flask·httpx