以下を実行するためのトリガーを作成するのに助けが必要です。
テーブル
- ユーザー・グループ
- ユーザー
新しいユーザー レコードを作成するたびに、ユーザーをユーザー グループにリンクする UserGroupId という外部キー フィールドを入力します。私が達成したいのは、UserGroup テーブルの TotalUsers という Count フィールドを更新することです。
私はTSQLトリガーに慣れていないので、どんな助けでも素晴らしいでしょう。ありがとう
以下を実行するためのトリガーを作成するのに助けが必要です。
テーブル
新しいユーザー レコードを作成するたびに、ユーザーをユーザー グループにリンクする UserGroupId という外部キー フィールドを入力します。私が達成したいのは、UserGroup テーブルの TotalUsers という Count フィールドを更新することです。
私はTSQLトリガーに慣れていないので、どんな助けでも素晴らしいでしょう。ありがとう
この種の情報は、テーブルの別のフィールドに格納するのではなく、必要な場合にのみ取得する方がよいという 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 と呼ばれると仮定しました。