2012-05-28 156 views
0

我需要一些幫助來創建觸發器來執行以下操作。創建TSQL觸發器

  1. 用戶組
  2. 用戶

每次我創建一個新的用戶記錄我叫填充一個UserGroupId關鍵foriegn場將用戶鏈接到一個用戶組的。我想要實現的是更新UserGroup表上名爲TotalUsers的Count字段。

任何幫助都會很棒,因爲我是TSQL觸發器的新手。謝謝

+1

看看這個關於如何創建一個觸發器的MSDN筆記,然後你只需插入你的更新查詢插入新記錄。 http://msdn.microsoft.com/en-us/library/aa258254(v=sql.80).aspx – Rahul

+0

非常誠實:我不會計算**並存儲**那個用戶數 - 我只會計算它(例如在某個視圖中)當你需要時 - 但不要存儲它。 –

回答

0

我同意marc_s這種類型的信息可能會更好地只提取時,而不是將其存儲在表中單獨的字段中。但這裏有一個觸發器,應該做你想要什麼:當你刪除一個用戶或當您在用戶更新組

create trigger UpdateUserCount on [User] 
for insert, update, delete 
as 
begin 
    update UserGroup set TotalUsers = sub.UserCount 
    from (
     select UserGroupId, COUNT(*) as UserCount 
     from [User] 
     where UserGroupId in (
      select UserGroupId from inserted 
      union 
      select UserGroupId from deleted 
     ) 
     group by UserGroupId 
    ) as sub 
    where UserGroup.UserGroupId = sub.UserGroupId 
end 

這觸發更新數也。我假定UserGroup表中的主鍵列被稱爲UserGroupId。