我正在设计一个数据库,我有一个包含计算列的表。表格如下图所示,第一个表格的名称为ProjectDetails.TimeCard
,第二个表格为HumanResources.Employee
ProjectDetails.TimeCard [TimeCardID | EmployeeID(Foreignkey) | BillableHours | **TotalCost** ] HumanResources.Employee [EmployeeID(Primarykey) | Fname | Lname | **BillingRate** ]
现在TotalCost
是计算列,自动计算为BillableHours*BillingRate
这要求我将表A的计算列设置为同一表中另一列与另一个表B上的列之间的计算结果。
我可以这样做吗?
答案 0 :(得分:0)
我会这样做:
UPDATE table1
SET calculated_column = <calculation>
FROM table1
JOIN table2
ON table1.column1 = table2.column2
如果您想使用触发器自动执行此操作,请输入以下模板:
CREATE TRIGGER calc_col_trigger
ON table1
AFTER INSERT,UPDATE
AS
DECLARE @id int;
SET @id = (SELECT id FROM inserted)
-- get a unique identifier from the inserted record
UPDATE table1
set calculated_column = <calculation>
FROM table1
JOIN table2
ON table1.column1 = table2.column2
where table1.id = @id;