데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

DATABASE의 TABLE 및 COLUMN COMMENT 출력

joe 2015.09.10 15:12 Views : 7724

--임시테이블, 커서, 코멘트 조회 펑션 등을 이용

--전 데이터베이스 의 테이블, 컬럼 조회 구문을 작성했습니다.

--필요하신분 실행해보시고 코멘트주시면 감사하겠습니다.

 

 

/*****************************************************************************
AUTHOR      : <Joe>
CREATE DATE : <2015-09-10 14:00:01>
DESCRIPTION : <전체 DATABASE의 TABLE 및 COLUMN COMMENT 출력, MSSQL>            
 *****************************************************************************/
IF OBJECT_ID('tempdb..#DBS_TABLES_COLUMNS_COMMENTS') IS NOT NULL
DROP TABLE #DBS_TABLES_COLUMNS_COMMENTS

--임시테이블생성:
CREATE TABLE #DBS_TABLES_COLUMNS_COMMENTS
(
    [DATABASE]       VARCHAR(100) 
  , [TABLE]          VARCHAR(100) 
  , [TABLE_COMMENT]  VARCHAR(100)
  , [COLUMN]         VARCHAR(100)
  , [COLUMN_COMMENT] VARCHAR(100)
)

--변수선언: DB명
DECLARE @DB_NAME NVARCHAR(100);

--커서선언
DECLARE CURSORDBS CURSOR
    FOR SELECT NAME
          FROM SYS.DATABASES
         WHERE NAME NOT IN (
                             'UNNECESSARY DATABASE NAME(TO SELECT COMMENT)'
                            ,'MASTER'
                            ,'TEMPDB'
                            ,'MODEL'
                            ,'MSDB'

                            ) order by name;
--커서오픈
OPEN CURSORDBS;

FETCH NEXT FROM CURSORDBS INTO @DB_NAME;

--첫번째 데이터를 불러옴(FETCH)
WHILE(@@FETCH_STATUS <> -1)
BEGIN

--작업 수행      
DECLARE @sql NVARCHAR(MAX);

SET @sql =
' INSERT INTO #DBS_TABLES_COLUMNS_COMMENTS                                                      '+
' SELECT '''+@DB_NAME+'''                                                              '+
'      , AA.TABLE_NAME                                                                 '+
'      , (SELECT CONVERT(VARCHAR,VALUE) FROM '+@DB_NAME+'.SYS.'+'FN_LISTEXTENDEDPROPERTY (NULL, '+'''SCHEMA'''+', '+'''DBO'''+', '+'''TABLE'''+', '+'AA.TABLE_NAME'+', DEFAULT, DEFAULT))'+
'      , BB.COLUMN_NAME                                                 '+
'      , (SELECT CONVERT(VARCHAR,VALUE) FROM '+@DB_NAME+'.SYS.'+'FN_LISTEXTENDEDPROPERTY (NULL, '+'''SCHEMA'''+', '+'''DBO'''+', '+'''TABLE'''+', '+'AA.TABLE_NAME'+', ''COLUMN'', BB.COLUMN_NAME))'+
'   FROM '+@DB_NAME+'.INFORMATION_SCHEMA.TABLES  AA INNER JOIN                   '+
'        '+@DB_NAME+'.INFORMATION_SCHEMA.COLUMNS BB ON AA.TABLE_NAME = BB.TABLE_NAME   '+
'  WHERE TABLE_TYPE= ''BASE TABLE''                                        '+
'  ORDER BY AA.TABLE_NAME                                                '+
'         , BB.ORDINAL_POSITION                                           '
;  

EXEC(@sql);

    --다음 결과 데이터로 이동    
    FETCH NEXT FROM CURSORDBS INTO @DB_NAME;
END
--커서를 닫고 메모리 반환
CLOSE CURSORDBS;
DEALLOCATE CURSORDBS;
SELECT * FROM #DBS_TABLES_COLUMNS_COMMENTS; 

IF OBJECT_ID('tempdb..#DBS_TABLES_COLUMNS_COMMENTS') IS NOT NULL
DROP TABLE #DBS_TABLES_COLUMNS_COMMENTS

No. Subject Author Date Views
1653 SSIS 패키지 보호 레벨 jevida(강성욱) 2016.01.11 3880
» DATABASE의 TABLE 및 COLUMN COMMENT 출력 joe 2015.09.10 7724
1651 백업 히스토리 모니터링 jevida(강성욱) 2015.03.31 11627
1650 백업 전략과 Differential Database Backup jevida(강성욱) 2015.03.31 11229
1649 SQL ServerPoint in time recovery jevida(강성욱) 2015.03.31 9056
1648 Striping SQL Server Database Backup jevida(강성욱) 2015.03.31 8697
1647 SQL 서버 감사가 있는 데이터베이스 복원 후 설정 jevida(강성욱) 2015.03.31 11790
1646 SQL ServerBACKUP 암호화 jevida(강성욱) 2015.03.30 8836
1645 SQL ServerErrorLog 관리 jevida(강성욱) 2015.03.30 10575
1644 SSMS 개체 탐색기를 통한 세부 정보 보기 jevida(강성욱) 2015.03.30 11592
1643 SSMS 접속했던 서버 목록 삭제 jevida(강성욱) 2015.03.30 12453
1642 SSMS 빠른 실행 아이콘 등록 하기 jevida(강성욱) 2015.03.30 8038
1641 SSMS 단축키 jevida(강성욱) 2015.03.27 7799
1640 SSMS UI 기능을 이용한 스크립트 생성 [1] jevida(강성욱) 2015.03.27 6886
1639 SSMS 서버 그룹 등록 및 서버 등록 jevida(강성욱) 2015.03.27 8666
1638 SSMS 여러 개체 선택하기 jevida(강성욱) 2015.03.27 5186
1637 SSMS 서버리스트 내보내기 / 가져오기 jevida(강성욱) 2015.03.27 6368
1636 SSMS 자동복구 활성 / 비활성 jevida(강성욱) 2015.03.27 4977
1635 SSMS 시스템 데이터베이스 숨기기 jevida(강성욱) 2015.03.27 4808
1634 SSMS 쿼리 자동 줄 바꿈 jevida(강성욱) 2015.03.27 9229





XE Login