if exists (select *
from dbo.sysobjects
where id = object_id(N'[dbo].[tr_Framework_Users_InsUpdDel]')
and objectproperty(id, N'IsTrigger') = 1)
drop trigger [dbo].[tr_Framework_Users_InsUpdDel]
go
create trigger dbo.tr_Framework_Users_InsUpdDel
on dbo.Framework_Users
for insert, update, delete
as
begin
update Framework_Users
set DeactivatedDate = getdate()
from Framework_Users u
inner join inserted i
on u.UserId = i.UserId
where isnull(u.IsDeactivated, 0) = 1
and u.DeactivatedDate is null
update Framework_Users
set DeactivatedDate = null
from Framework_Users u
inner join inserted i
on u.UserId = i.UserId
where isnull(u.IsDeactivated, 0) = 0
and u.DeactivatedDate is not null
declare @InsCount int,
@DelCount int
select @InsCount = count(*)
from inserted
select @DelCount = count(*)
from deleted
if @InsCount > 0 and @DelCount = 0
begin
declare @EveryoneRoleId UDT_OBJID
select @EveryoneRoleId = r.RoleId
from Framework_Roles r
where r.SpecialCategory = 'Everyone'
if @EveryoneRoleId is not null
begin
insert into Framework_UserRoles (UserId, RoleId)
select i.UserId,
@EveryoneRoleId
from inserted i
end
end
end
go