34,588
社区成员
发帖
与我相关
我的任务
分享
ALTER TRIGGER tr_test_update
ON PORequestEntry
AFTER UPDATE
AS
BEGIN
BEGIN TRANSACTION
DECLARE @fqty DECIMAL,
@FBatchAppendQty DECIMAL
--你原来都没有用到 INSERTED, INSERTED 相当于 PORequestEntry 表在修改过程中产生的新记录虚表
SELECT @fqty = t1.fqty,
@FBatchAppendQty = t2.FBatchAppendQty
FROM INSERTED t1 INNER JOIN
t_ICItemPlan t2
ON t1.FItemID = t2.FItemID
--不要用 NOT ,可读性不好
--另外,不明白为什么要用这个 % 取余,是否小于最小包装量,不就是
--IF @fqty<@FBatchAppendQty
--就可以了吗?
IF @fqty%@FBatchAppendQty != 0
BEGIN
COMMIT TRAN
END
ELSE
BEGIN --多语句必须加 BEGIN... END
PRINT'不能小于最小包装量”一定要按包装量倍数下单!'
ROLLBACK TRAN
END
END
ALTER TRIGGER tr_test_update
ON PORequestEntry
FOR UPDATE
AS
BEGIN
BEGIN TRANSACTION
DECLARE @fqty DECIMAL,
@FBatchAppendQty DECIMAL
SELECT @fqty = t1.fqty,
@FBatchAppendQty = t2.FBatchAppendQty
FROM PORequestEntry t1,
t_ICItemPlan t2
WHERE t1.FItemID = t2.FItemID
IF NOT(@fqty%@FBatchAppendQty = 0)
COMMIT TRAN
ELSE
BEGIN --多语句必须加 BEGIN... END
PRINT'不能小于最小包装量”一定要按包装量倍数下单!'
ROLLBACK TRAN
END
END
ALTER TRIGGER tr_test_update
ON PORequestEntry
FOR UPDATE
AS
BEGIN
BEGIN TRANSACTION;
DECLARE @fqty DECIMAL,
@FBatchAppendQty DECIMAL;
SELECT @fqty = t1.fqty,
@FBatchAppendQty = t2.FBatchAppendQty
FROM PORequestEntry t1,
t_ICItemPlan t2
WHERE t1.FItemID = t2.FItemID;
IF NOT (@fqty % @FBatchAppendQty = 0)
COMMIT TRAN;
ELSE
BEGIN
ROLLBACK TRAN;
PRINT '不能小于最小包装量”一定要按包装量倍数下单!';
END;
END;