use sqldb2a
select * from 부서
select * from 사원
select * from 자격증
1.
insert into 부서 values('10','영업부')
insert into 부서 values('20','관리부')
insert into 사원 values('A001','홍길동','1111','남', 0, '10',NULL)
insert into 사원 values('A002','조조','2222','남', 0, '20',NULL)
2.
begin try
begin tran
insert into 자격증 values('A001', 1, '가나01','산업기사1급', '2001/01/01',
'2005/01/01')
update 사원 set 자격증갯수=자격증갯수+1
where 사번='A001'
commit tran
end try
begin catch
rollback tran
end catch
3.
begin try
begin tran
delete from 자격증 where 사번='A001' and 일련번호=1
update 사원 set 자격증갯수=자격증갯수-1
where 사번='A001'
commit tran
end try
begin catch
rollback tran
end catch
4.
begin try
begin tran
update 자격증 set 사번='A002' where 사번='A001' and 일련번호=1
update 사원 set 자격증갯수=자격증갯수-1 where 사번='A001'
update 사원 set 자격증갯수=자격증갯수+1 where 사번='A002'
commit tran
end try
begin catch
rollback tran
end catch
5.
create trigger jtrig01 on 자격증 for insert
as
declare @snum nvarchar(5)
select @snum=사번 from inserted
update 사원 set 자격증갯수=자격증갯수+1
where 사번= @snum
insert into 자격증 values('A001', 2, '가나22','컴활1급', '2005/01/10',
'2010/01/10')
select * from 부서
select * from 사원
select * from 자격증
6.
create trigger jtrig02 on 자격증 for delete
as declare @snum nvarchar(5)
select @snum=사번 from deleted
update 사원 set 자격증갯수=자격증갯수-1
where 사번=@snum
delete from 자격증 where 사번='A001' and 일련번호=2
7.
select * from 부서
select * from 사원
select * from 자격증
alter trigger jtrig03 on 자격증 for update
as declare @snum nvarchar(5), @snum2 nvarchar(5)
select @snum=사번 from deleted
select @snum2=사번 from inserted
update 사원 set 자격증갯수=자격증갯수-1 where 사번=@snum
update 자격증 set 사번='A002' where 사번='A001' and 일련번호=2
delete from 자격증 where 사번='A002' and 일련번호=2
insert into 자격증 values('A001', 2, '가나22','컴활2급', '2005/01/10',
'2010/01/10')