[英]MSSQL Trigger After update
我在 mssql 中有两个表。 向表中输入数据时,tiger 表中的 STOCK 列应为 -1,如果 STOCK 列等于 0,则 STATUS 应为 false。 请帮忙。
当您将其插入 TBLACTION 仪表板时,它将在 TBLBOOK 仪表板上触发
我英语说得不好。 对不起。
我们为每个要求提供多种解决方案。 让我们试试这个:
向表中输入数据时,tiger 表中的 STOCK 列应为 -1
如果 STOCK 列等于 0,则 STATUS 应为 false
当您将其插入 TBLACTION 仪表板时,它将在 TBLBOOK 上触发 3.a) 有人拿书,插入时列 ReturnDate 应为 NULL; 3.b)有人归还书,那么您应该更新列 ReturnDate
在开始插入后创建触发器 [dbo].[TBLBOOKInserted] ON [dbo].[TBLBOOK]
设置无计数;
更新 TBLBOOK SET STOCK = -1 其中 STOCK 为 NULL 和 ID IN(从 INSERTED 中选择 INSERTED.ID)END GO
更新开始后在 [dbo].[TBLBOOK] 上创建触发器 [dbo].[TBLBOOKUpdate]
设置无计数;
UPDATE TBLBOOK SET BOOKSTATUS = 0 WHERE STOCK = 0 AND ID IN (SELECT INSERTED.ID FROM INSERTED) END GO
在开始插入后创建触发器 [dbo].[TBLACTIONInsert] ON [dbo].[TBLACTION]
设置无计数;
更新 TBLBOOK SET STOCK = STOCK-1,其中 ID 在(从 INSERTED 中选择 INSERTED.BOOK,其中返回为 NULL)END GO
更新开始后在 [dbo].[TBLACTION] 上创建触发器 [dbo].[TBLACTIONUpdate]
设置无计数;
更新 TBLBOOK SET STOCK = STOCK+1,其中 ID 在(SELECT INSERTED.BOOK FROM INSERTED WHERE RETUNDATE 不为 NULL)和 ID 在(SELECT DELETED.BOOK FROM DELETED WHERE RETURNDATE IS NULL)结束 GO
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.