我有两个表,Employee和Sales。 在Employee表中有一个名为' sales of sales'的列。 但我希望它是不可插入的。 所以你不能插入任何东西,它将由另一个因素更新: 对于销售中与该员工具有相同ID的每一列,我希望看到员工销售数量中的销售数量'列。
类似[销售数量] =通过employeeID从sales s group中选择count(*),其中EmployeeID = s.EmployeeID
答案 0 :(得分:1)
通常的方法是触发(记录为here)。
您还可以使用具有用户定义函数的生成列。
但是,我会提醒您注意这两种方法,因为它们可能很复杂并且会以意想不到的方式影响性能。相反,为什么不创建一个视图?
create view v_employees as
select e.*, s.cnt
from employees e outer apply
(select count(*) as cnt
from sales s
where s.EmployeeID = e.EmployeeID
) s;
您可以查询视图并在需要时获取值。当sales
中的值发生变化时,由于插入,更新和删除,该值会自动“更新”。