我需要一些帮助来创建触发器来执行以下操作。
表格
每当我创建一个新的用户记录时,我会填充一个名为UserGroupId的外键字段,该字段将用户链接到UserGroup。我想要实现的是更新UserGroup表上名为TotalUsers的Count字段。
因为我是TSQL触发器的新手,所以任何帮助都会很棒。感谢
答案 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。