|     
		 (3) | 
	 
		  
	
		|     
		 (3) | 
	 
		  
	
		|     
		 (5) | 
	 
		  
	
		|     
		 (1) | 
	 
		  
	
		|     
		 (5) | 
	 
		  
	
		|     
		 (9) | 
	 
		  
	
		|     
		 (7) | 
	 
		  
	
		|     
		 (9) | 
	 
		  
	
		|     
		 (5) | 
	 
		  
	
		|     
		 (2) | 
	 
		  
	
		|     
		 (1) | 
	 
		  
	
		|     
		 (8) | 
	 
		  
	
		|     
		 (7) | 
	 
		  
	
		|     
		 (4) | 
	 
		  
	
		|     
		 (17) | 
	 
		  
	
		|     
		 (5) | 
	 
		
	 	
	
		
		
		
		
		
		
		
		
		
  
    
		
		  
			|   | 
			Location | 
			United States | 
		   
		  
			|   | 
			IP Address | 
			216.73.216.136 | 
		   
		 
	 | 
   
 
		
		
			| 2025. 11 | 
	  |  |  |  |  |  | 1 |  | 2 | 3 |  | 5 | 6 | 7 | 8 |  | 9 | 10 | 11 | 12 | 13 | 14 | 15 |  | 16 | 17 | 18 | 19 | 20 | 21 | 22 |  | 23 | 24 | 25 | 26 | 27 | 28 | 29 |  | 30 |  |  |  |  |  |  |  
		 
		
	
	
	
	 | 
     | 
	
		
	
		
		  
			| Category | 
			 Languages, SQL | 
		   
		  
			| Writer | 
			김태우 | 
			Date | 
			2014-10-29 10:36:55 | 
			Visit | 
			6709 | 
		   
		  
			| 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 
				
	
	
	
		
	
	 |