更新后的 MSSQL 触发器

MSSQL Trigger After update


我在 mssql 中有两个 table。 当向table中输入数据时,老虎table中的STOCK列应该是-1,如果STOCK列等于0,那么STATUS应该是false。请帮忙

当您将它插入到TBLACTION仪表盘时,它将在TBLBOOK仪表盘上触发

我英语说得不好。对不起。

对于每个需求,我们都有多种解决方案。让我们试试这个:

  1. 在table中输入数据时,老虎table中的STOCK列应该是-1

  2. 如果 STOCK 列等于 0,则 STATUS 应该为 false

  3. 当你将它插入到TBLACTION仪表板时,它会在TBLBOOK上触发 3.a) 有人拿了书,插入时 ReturnDate 列应该为 NULL; 3.b) 有人 return 这本书然后你应该更新列 ReturnDate

    创建触发器 [dbo]。[TBLBOOKInserted] 在 [dbo].[TBLBOOK] 插入后 作为 开始

    设置无计数;

    更新 TBLBOOK 放 股票 = -1 在哪里 库存为空且 ID IN(SELECT INSERTED.ID 来自插入) 结尾 开始

    创建触发器 [dbo].[TBLBOOKUpdate] 在 [dbo].[TBLBOOK] 更新后 作为 开始

    设置无计数;

    更新 TBLBOOK 放 图书状态 = 0 在哪里 股票 = 0 和 ID IN(SELECT INSERTED.ID 来自插入) 结尾 开始

    创建触发器 [dbo].[TBLACTIONInsert] 在 [dbo].[TBLACTION] 插入后 作为 开始

    设置无计数;

    更新 TBLBOOK 放 库存 = 库存 1 在哪里 ID IN (SELECT INSERTED.BOOK FROM INSERTED WHERE RETURNDATE IS NULL) 结尾 开始

    创建触发器 [dbo].[TBLACTIONUpdate] 在 [dbo].[TBLACTION] 更新后 作为 开始

    设置无计数;

    更新 TBLBOOK 放 股票 = 股票 + 1 在哪里 ID IN (SELECT INSERTED.BOOK FROM INSERTED WHERE RETURNDATE IS NOT NULL) 和 ID IN (SELECT DELETED.BOOK FROM DELETED WHERE RETURNDATE IS NULL) 结尾 开始