DATABASE의 TABLE 및 COLUMN COMMENT 출력

joe 2015.09.10 15:12 Views : 7839

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

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

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

 

 

/*****************************************************************************
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
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 21817
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 12242
1654 SSIS 로그 보관기간 설정 (CleanUp 기간 설정) jevida(강성욱) 2016.01.11 4389
1653 SSIS 패키지 보호 레벨 jevida(강성욱) 2016.01.11 3957
» DATABASE의 TABLE 및 COLUMN COMMENT 출력 joe 2015.09.10 7839
1651 백업 히스토리 모니터링 jevida(강성욱) 2015.03.31 11672
1650 백업 전략과 Differential Database Backup jevida(강성욱) 2015.03.31 11290
1649 SQL ServerPoint in time recovery jevida(강성욱) 2015.03.31 9078
1648 Striping SQL Server Database Backup jevida(강성욱) 2015.03.31 8725
1647 SQL 서버 감사가 있는 데이터베이스 복원 후 설정 jevida(강성욱) 2015.03.31 12008
1646 SQL ServerBACKUP 암호화 jevida(강성욱) 2015.03.30 8886
1645 SQL ServerErrorLog 관리 jevida(강성욱) 2015.03.30 10708
1644 SSMS 개체 탐색기를 통한 세부 정보 보기 jevida(강성욱) 2015.03.30 11790
1643 SSMS 접속했던 서버 목록 삭제 jevida(강성욱) 2015.03.30 12663
1642 SSMS 빠른 실행 아이콘 등록 하기 jevida(강성욱) 2015.03.30 8063
1641 SSMS 단축키 jevida(강성욱) 2015.03.27 7830
1640 SSMS UI 기능을 이용한 스크립트 생성 [1] jevida(강성욱) 2015.03.27 6937
1639 SSMS 서버 그룹 등록 및 서버 등록 jevida(강성욱) 2015.03.27 8765
1638 SSMS 여러 개체 선택하기 jevida(강성욱) 2015.03.27 5201
1637 SSMS 서버리스트 내보내기 / 가져오기 jevida(강성욱) 2015.03.27 6504
1636 SSMS 자동복구 활성 / 비활성 jevida(강성욱) 2015.03.27 5019
1635 SSMS 시스템 데이터베이스 숨기기 jevida(강성욱) 2015.03.27 4844





XE Login