我们正在为课程中的作业开发销售应用程序,其中包含Pay_id,Invoice_ID,Total_Amount,Received,Balance和Pay_Status列的Payments表。 Pay_Status应自动更新为"完成"或"待定"如果已支付Total_Amount,则视具体情况而定。如何为此创建触发器?所有列都已设置为varchar(50) 在此先感谢您的回复
答案 0 :(得分:0)
我认为你可以使用带有“case”语句的计算列。 看这里:https://blog.sqlauthority.com/2016/04/27/sql-server-computed-column-conditions-case-statement/
答案 1 :(得分:0)
这应该可以解决问题
CREATE TRIGGER tx_UpdatePayStatus
ON Payments
AFTER UPDATE
AS
BEGIN
IF (SELECT TotalAmount FROM Payments) <> (SELECT Received FROM Payments)
UPDATE Payments
SET Pay_Status = 'Pending'
ELSE
UPDATE Payments
SET Pay_Status = 'Complete'
END
答案 2 :(得分:0)
只需将其计算定义更改为:
(case when [TotalAmount]=[Received] then 'Complete' else 'Pending' end)