自动更新SQL Server数据库中的列

时间:2017-05-11 08:22:31

标签: c# sql-server visual-studio

我们正在为课程中的作业开发销售应用程序,其中包含Pay_id,Invoice_ID,Total_Amount,Received,Balance和Pay_Status列的Payments表。 Pay_Status应自动更新为"完成"或"待定"如果已支付Total_Amount,则视具体情况而定。如何为此创建触发器?所有列都已设置为varchar(50) 在此先感谢您的回复

3 个答案:

答案 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)