五月九日,仓库进销存,入库触发器

check_入库

CREATE TRIGGER [dbo].[check_入库]
ON [dbo].[入库表]
AFTER INSERT
AS
DECLARE @wpbianhao int,@ygbianhao int,@rksl int
DECLARE @name nvarchar(20) 
SELECT @wpbianhao=物品编号 FROM inserted
SELECT @ygbianhao=员工编号 FROM inserted
SELECT @rksl=入库数量 FROM inserted

IF @wpbianhao=(select 物品编号 from 物品信息表 where 物品编号=@wpbianhao) 
	BEGIN
	
		IF @ygbianhao =(select 员工编号 from 员工信息表 where  @ygbianhao = 员工编号) 
		BEGIN
			SELECT @name=物品名称 FROM 物品信息表 where @wpbianhao=物品编号
			IF @name=(select 物品名称 from 库存信息表 where 物品名称=@name) 
			BEGIN
				update 库存信息表
				set 剩余数量 = (select 剩余数量 from 库存信息表 where 物品名称=(select 物品名称 from 物品信息表 where @wpbianhao=物品编号))+@rksl
				where  物品名称=(select 物品名称 from 物品信息表 where @wpbianhao=物品编号)
			END
			ELSE
			BEGIN
				insert into 库存信息表(物品名称,剩余数量) values (@name,@rksl)
	
			END
			print '登记成功'
		
		END
		ELSE
		BEGIN
			print'该员工不存在'
			ROLLBACK
		END
		
	END
	
	
	ELSE
	
	BEGIN
		print'不存在该物品,请先在库存登记'
		ROLLBACK
	END


check_删除_入库

CREATE TRIGGER [dbo].[check_删除_入库]
ON [dbo].[入库表]
AFTER DELETE
AS
BEGIN
DECLARE @wpbianhao int,@ygbianhao int,@rksl int
SELECT @wpbianhao=物品编号 FROM deleted
SELECT @ygbianhao=员工编号 FROM deleted
SELECT @rksl=入库数量 FROM deleted

update 库存信息表
set 剩余数量 = (select 剩余数量 from 库存信息表 where 物品名称 = (select 物品名称 from 物品信息表 where @wpbianhao=物品编号))-@rksl
where 物品名称=(select 物品名称 from 物品信息表 where @wpbianhao=物品编号)
END

check_修改_入库


CREATE TRIGGER [dbo].[check_修改_入库]
ON [dbo].[入库表]
AFTER UPDATE
AS
BEGIN
	DECLARE @wpbianhao_qian  int,@ygbianhao_qian  int,@rksl_qian int
	DECLARE @wpbianhao_hou  int,@ygbianhao_hou  int,@rksl_hou int 
	DECLARE @name nvarchar(20)
	SELECT @wpbianhao_qian=物品编号,@ygbianhao_qian=员工编号, @rksl_qian=入库数量 FROM inserted
	SELECT @wpbianhao_hou =物品编号,@ygbianhao_hou =员工编号, @rksl_hou=入库数量  FROM DELETED
	
	--原信息删除
	update 库存信息表 
	set 剩余数量 = (select 剩余数量 from 库存信息表 where 物品名称 = (select 物品名称 from 物品信息表 where @wpbianhao_qian=物品编号))-@rksl_qian
	where 物品名称=(select 物品名称 from 物品信息表 where @wpbianhao_qian=物品编号)

	--新信息的添加
	/*
	update 库存信息表
	set 剩余数量 = (select 剩余数量 from 库存信息表 where 物品名称 = (select 物品名称 from 物品信息表 where @wpbianhao=物品编号))-@rksl_qian+@rksl_hou
	where 物品名称=(select 物品名称 from 物品信息表 where @wpbianhao=物品编号)
	*/
	IF @wpbianhao_hou=(select 物品编号 from 物品信息表 where 物品编号=@wpbianhao_hou) 
		BEGIN
		
			IF @ygbianhao_hou =(select 员工编号 from 员工信息表 where  @ygbianhao_hou = 员工编号) 
			BEGIN
				SELECT @name=物品名称 FROM 物品信息表 where @wpbianhao_hou=物品编号
				IF @name=(select 物品名称 from 库存信息表 where 物品名称=@name) 
				BEGIN
					update 库存信息表
					set 剩余数量 = (select 剩余数量 from 库存信息表 where 物品名称=(select 物品名称 from 物品信息表 where @wpbianhao_hou=物品编号))+@rksl_hou
					where  物品名称=(select 物品名称 from 物品信息表 where @wpbianhao_hou=物品编号)
				END
				ELSE
				BEGIN
					insert into 库存信息表(物品名称,剩余数量) values (@name,@rksl_hou)
		
				END
				print '登记成功'
			
			END
			ELSE
			BEGIN
				print'该员工不存在'
				ROLLBACK
			END
			
		END
		
		
		ELSE
		
		BEGIN
			print'不存在该物品,请先在库存登记'
			ROLLBACK
		END
END




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值