我创建了两个表:
在第一个表中,我想将计算结果存储在第3列
中Table 1
num1|num2|num3
我希望每次更新后都有num3
= num1+num2
,插入,删除
我的第二张表是百分比计算,类似于心愿单
Table 2
value|stored|left
我希望left
= stored/value
,即。存储金额占项目价值的百分比。
如何在升级,插入,删除时将这些值设置为计算?
原始:
我创建了两个表格,在第一个表格中我尝试将结果存储在3< rd列ex:my tabel structure num1 | num2 | num3
其中num3 = num1 + num2,每次更新后,插入,删除
第二个表格用于计算百分比,类似于心愿单结构:值,存储,左侧
其中value =你要购买的对象的价值,ex 1250存储的是为你的愿望保存的ammount是留下来实现你的目标的百分比
像第一个表格一样的问题答案 0 :(得分:0)
如果在设置num3之前将num1和num2值存储在变量中会更好。除非您在前两列中首先执行 INSERT ,然后在num3列上执行 UPDATE 。
有时数据库没有设置为自动提交,因此您需要强制它,然后重用这些值。
答案 1 :(得分:0)
创建trigger
将有助于在insert
或update
表后帮助update
列更新您的表格,假设您在表格中有ID列
CREATE TRIGGER Insert_Update ON mytable
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
IF
UPDATE (num3)
BEGIN
UPDATE dbo.Mytable
SET num3 = i.num1 + i.num2
FROM inserted i
INNER JOIN mytable t ON i.MyID = t.MyID
LEFT JOIN deleted d ON i.MyID = d.MyID
WHERE d.MyID IS NULL AND i.ColumnB IS NOT NULL -- Row was inserted
OR d.MyID IS NOT NULL -- Row was updated
END
END
GO