2016-01-16 51 views
0

我需要解決此問題,並且遇到嚴重問題才能獲得工作解決方案。SQL Server觸發器更新第二個表中的計數器

我有2個表格,EmployeesDepartments。每個部門都有一個在其中註冊的員工數量的計數器。

因此,當我插入或刪除Employee,以及相關的部門名稱時,我需要更新Departments表中該部門的計數器。

+2

即使在合理大小的數據庫中,計算計數應該相當快時,您確實需要證明爲什麼計數是必要的。 –

+1

請谷歌瞭解SQL中的CREATE TRIGGER命令。 –

+1

除非這是某種家庭作業,事實上,即使它是這樣,這種味道就像一個不好的數據庫設計。正如Gordor所寫,Count的執行速度非常快,即使有大量的記錄(我們在這裏大概有數億人)。 –

回答

0

嘗試在員工表上創建(刪除)觸發器,其中在刪除員工後,此觸發器運行並更新部門表。

CREATE TRIGGER UPDEPT

ON僱員

AFTER DELETE

AS UPDATE DEPARTMENT d SET D.Empcount =(SELECT COUNT(員工)WHERE DEPTID = D.DEPTID) GO

您可能必須根據表中的數據設置更新查詢。

+0

但是,當我插入一名員工時會發生什麼?我應該再插入一個觸發器嗎? –

+0

沒有。您可以修改插入或刪除的相同觸發器。它將更新每個插入或刪除的部門數量。 – Nate