누가 자꾸 내 데이터를 지우는가 ㅠ.ㅠ
언제? 어떤 호스트에서? 어떤 프로그램을 이용해서? 호스트의 프로세스 아이디는? 로그인 네임은 뭘로? text 는 뭐야?
아래 그림을 보면 음...... 이제 다 찾았습니다.
용서를 할지.....로그인 기록부터 뒤져서....기때기를 때릴지...
if object_id('tbl_audit') is not null
drop table tbl_audit
go
create table tbl_audit
(eventtime datetime
,hostname varchar(100)
,program_name varchar(100)
,hostprocess int
,loginame varchar(100)
,text varchar(max))
go
if object_id ('tblx') is not null
drop table tblx
go
create table tblx
(idx int identity(1,1)
,c1 int)
go
insert into tblx values (1)
go 100
if object_id('tr_delete_tblx') is null
exec ('create trigger tr_delete_tblx on tblx after delete as select 1')
go
alter trigger tr_delete_tblx
on tblx
after delete
as
if @@rowcount > 0 begin
set nocount on -- trigger 에서는 주의!
declare @buffertext table
(eventtype varchar(100),parameters varchar(100),eventinfo nvarchar(max))
declare @text nvarchar(max)
insert into @buffertext exec('dbcc inputbuffer('+@@spid+')')
select @text = eventinfo from @buffertext
insert into tbl_audit (eventtime, hostname, program_name, hostprocess, loginame, text)
select getdate() eventime, hostname, program_name, hostprocess, loginame, @text text
from master.dbo.sysprocesses a
where a.spid = @@spid
end
go
delete from tblx where idx = 10
go
select * from tblx
select * from tbl_audit