퇴근5분전

프로시저와 프로시저내에서 사용하는 테이블 정보!

만들어진 배경!!

 

개발하면서 항상 두개의 서버간 비교?가 필요한 상황이 온다.

개발/ 운영 서버, 또는 A개발 / B개발 서버 등... 

 

이때 이 프로그램을 이용하면 좋다. 

임시로 EXPRESS서버를 가동하고 커넥션 문자열을 바꾸어 윈도우 인증모드로 두개의 DB를 만들고 스샷을 찍었다. 

 

1. 두개의 DB에서 프로시저를 조회하여 보여준다.

    DB1에는 있지만 DB2에는 없는 상황.

2. 해당 프로시저가 사용하고 있는 테이블, 함수, 뷰 등을 중간 그리드에 보여준다. 

    DB2에 SP가 없으므로 종속된 테이블, 함수, 뷰등은 보여주지 않는다. 

3. 중간 그리드에 선택된 오브젝트에 대하여 DB1, DB2에 각각 있는지 표시해준다. 

 

기본적으로 수정일자를 표시하여 언제 최신 수정된 위치에 색칠을 해준다. 

* 세번째 그리드의 테이블 정보를 보면 DB2가 최근에 만들어진 것을 알 수 있다.

 

4. 첫번째 그리드에 적용을 누르면 프로시저 내용 및 DB2에 바로 적용이 가능하다. 

 

우측상단에 적용버튼을 클릭하면 반영됨.

.. 반영 후!

반영된 모습.

비교를 누르면!!  WinMergeU 나 비주얼 스튜디오나 Windiff같은 비교가능한 프로그램으로 내용을 보여준다.

비교된 모습

해당 테이블을 더블 클릭하면 테이블 스키마를 비교해서 보여준다. 

두개의 테이블 정보를 비교해 준다.

 

AM_SUPPLY는 DB1에는 있지만 DB2에는 없는 것을 확인할 수 있다.

 

왼쪽 (프로퍼티)추가, (설명)추가 버튼이 두개 보인다.  이걸 클릭하면 DB1 스키마 정보를 이용하여

DB2에 적용할 수 있도록 스크립트 구문이 클립보드로 복사된다. 

 컬럼수정 : ALTER TABLE TB_TEST ADD [AM_SUPPLY] numeric(18,2)

 컬럼설명 : EXEC SP_ADDEXTENDEDPROPERTY @NAME=N'MS_DESCRIPTION', @VALUE=N'금액', @LEVEL0TYPE=N'SCHEMA', @LEVEL0NAME=N'dbo',  @LEVEL1TYPE=N'TABLE', @LEVEL1NAME=N'TB_TEST', @LEVEL2TYPE=N'COLUMN', @LEVEL2NAME=N'AM_SUPPLY'

이 구문을 SSMS를 이용하여 반영하면 된다. 

 

컬럼 수정 된 결과

DB가 1개일때는 한쪽만 연결하고 써도 괜찮다. 다른 DB로 직접 전달하는 부분이 비활성화 되어 사용이 불가해질 뿐.

 

그럼... 이 프로그램 소개도 이만...