由另一个表中的另一列自动更新列

时间:2017-06-17 19:05:57

标签: sql sql-server

我有两个表,Employee和Sales。 在Employee表中有一个名为' sales of sales'的列。  但我希望它是不可插入的。  所以你不能插入任何东西,它将由另一个因素更新: 对于销售中与该员工具有相同ID的每一列,我希望看到员工销售数量中的销售数量'列。

类似[销售数量] =通过employeeID从sales s group中选择count(*),其中EmployeeID = s.EmployeeID

1 个答案:

答案 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中的值发生变化时,由于插入,更新和删除,该值会自动“更新”。