2011-09-03 3 views
2

은 이미 두 개의 트리거를 생성 : inserated에서삭제 된 항목에 대한 트리거를 작성하는 방법은 무엇입니까?

create trigger [insert_history] on users 
for insert 
as 
insert audit(action_type, table_name, object_name, time) 
select 'Inserted', 'users', username, getdate() 
from inserted 

go 

create trigger [update_history] on users 
for update 
as 
insert audit(action_type, table_name, object_name, time) 
select 'Updated', 'users', username, getdate() 
from deleted 

삽입 된 값을 검색합니다. 업데이트는 삭제 된 값을 검색합니다.

삭제 진술이란 무엇입니까?

답변

2

이렇게하면 pseudotable deleted도 사용하게됩니다.

for update, delete을 사용하여 update 트리거와 통합 할 수 있습니다. 업데이트 트리거는 '이전'값만 포함하므로 두 코드가 모두 동일 할 수 있습니다.

편집 : 그럼 액션 문자열을 결정하기 위해 EXISTS(SELECT * FROM inserted)이 있는지 확인해야합니다. 어쩌면 분리하면 더 쉬울 것입니다.

+0

감사합니다. IT가 작동합니다. – Amumu

관련 문제