본문 바로가기

SQL Server/SQL Server 형상 관리

[Sequel Safe] 테이블 명세 & 모듈 명세

개요

데이터베이스와 연동하여 개발할 때, 개발자가 필요로하는 정보에는 이런 것들이 포함됩니다.

  1. 데이터베이스 연결 정보 : 호스트 이름 (또는 IP주소), 포트 번호, 로그인 계정 및 패스워드
  2. ERD
  3. 테이블 명세서
  4. 모듈 명세서 (Stored Procedure, User Defined Function 등)

위에 나열한 정보 중 업데이트 주기는 이런 순서라고 보입니다.

D > C = B > A

그런데, 업데이트가 비교적 빈번한 C와 D항목을 사람이 일일이 수작업으로 문서화 하기는 어렵습니다.
이것이 가장 흔한 문제이면서 또한 가장 심각한 문제인데요.
즉, 시스템과 문서의 버전이 일치하지 않는다는 점입니다.

회사마다 문서 관리 시스템이 상이하기 때문에 어떻게 문서를 관리하는 것이 정답이다라고 말할 수는 없습니다.

다만, 제 경험으로는 wiki가 가장 효과적이었습니다.


Sequel Safe를 설치하셨다면, [sp_helptable]과 [sp_helpmodule]이라는 시스템 저장 프로시저를 통해 테이블과 모듈의 명세서를 wiki tag 스타일로 생성할 수 있습니다.
이렇게 생성한 wiki tag를 wiki 페이지에 붙여 넣는 것으로 문서의 공유가 완료됩니다.

TIP
sp_helptable과 sp_helpmodule의 입력 파라미터 중 @inyPrintFormat값을 조정하면 html 포맷으로 출력할 수 있습니다.
자세한 내용은 소스를 열어 확인하시기 바랍니다.

샘플 DB 만들기

설명을 위해 Demo라는 이름의 DB를 생성하도록 하겠습니다.

  1. Gen_DevDB01.sql과 Gen_DevDB02.sql 파일을 사용하여 Demo 라는 DB를 생성합니다.
    1. Gen_DevDB01.sql
    2. Gen_DevDB02.sql

  2. Demo DB에서 아래 스크립트를 실행합니다.
    1. DBCreate_Demo.sql

Demo DB의 ERD

기능 소개

I. 테이블 명세

1
2
3
4
5
6
7
8
9
10
11
12
13
14
DECLARE
      @nvcTableName nvarchar(128)     -- 테이블이름.
    , @nvcSchemaName nvarchar(128)    -- 테이블소유주이름.
    , @inyPrintFormat tinyint;        -- Print 포맷. 1=Media Wiki,2=HTML,3=Red Cloth Wiki
 
SET @nvcTableName = NULL;
SET @nvcSchemaName = NULL;
SET @inyPrintFormat = NULL;
 
EXEC @intReturnValue = dbo.sp_helptable
      @nvcTableName = @nvcTableName
    , @nvcSchemaName = @nvcSchemaName
    , @inyPrintFormat = @inyPrintFormat;
GO
cs
  • 모든 테이블의 명세 조회

    • Results 탭 :
      테이블 레이아웃

    • Messages 탭 :
      media wiki tag 포맷으로 제공

  • 단일 테이블 명세 조회

    • Results 탭 :
      테이블 레이아웃, 모든 컬럼 이름을 ,로 구분한 문자열, Check 제약조건, 상위 10개의 레코드

    • Messages 탭 :
      media wiki tag 포맷으로 제공



II. 모듈 명세

1
2
3
4
5
6
7
8
9
10
11
12
13
14
DECLARE
      @nvcObjectName nvarchar(128)    -- 개체이름.
    , @chrObjectTypeCode char(2)      -- 개체타입. (P, RF, TR, FN, IF, TF)
    , @inyPrintFormat tinyint;        -- Print 포맷. 1=Media Wiki,2=HTML
 
SET @nvcObjectName = NULL;
SET @chrObjectTypeCode = NULL;
SET @inyPrintFormat = NULL;
 
EXEC @intReturnValue = dbo.sp_helpmodule
      @nvcObjectName = @nvcObjectName
    , @chrObjectTypeCode = @chrObjectTypeCode
    , @inyPrintFormat = @inyPrintFormat;
GO
cs
  • 모든 Stored Procedure
    개체 타입을 지정하지 않으면 P (= stored procedure)가 디폴트



  • 단일 Stored Procedure


III. 단축키 설정

Sequel Safe 환경에서 개발 편의를 위해 아래와 같이 단축키를 설정하도록 권합니다.
※ 단축키를 제대로 활용하려면 반드시 MS SQL 2005 서비스팩을 설치하셔야합니다.


Ctrl+F1 : dbo.sp_checkinmodule
Ctrl+3  : dbo.sp_findModule
Ctrl+4  : dbo.sp_helpcode
Ctrl+5  : dbo.sp_helptable
Ctrl+6  : dbo.sp_helpmodule
Ctrl+7  : dbo.sp_mkScaffold @nvcAuthorName=N'이름', @nvcAuthorEmail=N'이메일', @nvcTableName=
Ctrl+8  : dbo.sp_modulelist
Ctrl+9  : dbo.sp_viewmodule
Ctrl+0  : dbo.sp_editmodule