Life is.

반응형

CREATE TABLE dbo.splog
  (
     일련번호    INT IDENTITY(1, 1) NOT NULL,
     오브젝트명 VARCHAR(100) NULL,
     구분          VARCHAR(20) NULL,
     sqlcmd       VARCHAR(max) NULL,
     수정자       VARCHAR(20) NULL,
     수정자ip     VARCHAR(max) NULL,
     수정일       DATETIME NULL,
     CONSTRAINT xpksplog PRIMARY KEY NONCLUSTERED ( 일련번호 ASC )
  )

go

CREATE TRIGGER trg_splog
ON DATABASE
FOR create_procedure, alter_procedure, drop_procedure, create_view, alter_view,
drop_view, create_function, alter_function, drop_function, create_trigger,
alter_trigger, drop_trigger
AS
    DECLARE @DATA XML

    SET @DATA = Eventdata()

    DECLARE @IP VARCHAR(max)

    SET @IP = (SELECT TOP 1 C.client_net_address
               FROM   sys.sysprocesses S,
                      sys.dm_exec_connections C
               WHERE  S.spid = C.session_id
                      AND S.spid IN (SELECT @@SPID))

    INSERT INTO dbo.splog
                (오브젝트명,
                 구분,
                 sqlcmd,
                 수정자,
                 수정자ip,
                 수정일)
    VALUES      (@DATA.value('(/EVENT_INSTANCE/ObjectName)[1]', 'VARCHAR(100)'),
                 @DATA.value('(/EVENT_INSTANCE/EventType)[1]', 'VARCHAR(100)'),
                 @DATA.value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]',
                 'VARCHAR(MAX)'),
                 Host_name(),
                 @IP,
                 Getdate()) 


출처 : http://www.sqler.com/491522

아이피도 남기도록 하나 추가.

반응형

'개발 > SQL SERVER' 카테고리의 다른 글

TOP 그리고 ROW_NUMBER  (0) 2018.09.11
SQL SERVER 운영 팁  (0) 2018.09.11
외부 데이터베이스 조회  (0) 2018.09.11
MSSQL 트랜잭션 로그파일 크기 줄이기  (0) 2018.09.11
프로시저 및 함수 내용 검색  (0) 2018.09.11