2017-06-17 158 views
0

我有兩張表Employee和Sales。在Employee表中有 有一列叫'銷售數量'。 但我希望它是不可引用的。 所以你不能插入任何東西,它會被另一個因素更新: 對於銷售中與該員工具有相同ID的每個列我想查看員工銷售數量列中的銷售數量。由另一個表中的另一列自動更新列

像通過從僱員銷售S組[銷售的數] = SELECT COUNT(*)其中,僱員ID = s.EmployeeID

回答

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中的值發生更改時,該值會自動「更新」。

相關問題