SPATIUM Desktop
주소복사
About Operating System Languages Tools Favorites Notice Visit TEST  
     ADK (2)
     android (3)
     ASP (5)
     ASP.Net (1)
     C# (5)
     HTML (9)
     JAVA (6)
     JavaScript (9)
     jQuery (5)
     Mobile Web (2)
     Oracle (8)
     PHP (7)
     Spring Framework (4)
     SQL (15)
     WPF (5)
   ID  
   Password  
  |  
  Location United States
  IP Address 54.84.236.168
2018. 12
1
2345678
9101112131415
16
17
1819202122
23242526272829
3031
Category  Languages, SQL
Writer 김태우 Date 2014-10-29 10:36:55 Visit 3248
MSSQL, DDL 트리거 이용, 변경 이력 저장(형상관리처럼..)
 

DDL 트리거 이용, 변경 이력 저장(형상관리처럼..)

 
프로시져나 뷰, 펑션등을 수정할때마다 소스를 저장하는 방법, DDL 트리거를 이용.
 
 
CREATE TABLE dbo.SPLOG(
일련번호 int IDENTITY(1,1) NOT NULL,
오브젝트명 varchar(100) NULL,
구분 varchar(20) NULL,
SQLCMD varchar(max) NULL,
수정자 varchar(20) 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()
 
 
INSERT INTO DBO.SPLOG (오브젝트명, 구분, SQLCMD, 수정자, 수정일)
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(),
 GETDATE())
 
 
 
 
Tags  MSSQL Procedure 형상관리, 프로시저 형상관리, MSSQL 형상관리
  Relation Articles
[Languages-SQL] MSSQL, DDL 트리거 이용, 변경 이력 저장(형상관리처럼..) (2014-10-29 10:36:55)
  Your Opinion
Member ID
150 letters
Copyright (C) SPATIUM. All rights reserved.
[SPATIUM]WebMaster Mail