Mir's 운영환경
본체 MacBook Pro
O S Windows7 Ultimate K (Service Pack 1)
APP Microsoft SQL Server Management Studio  2017 V17.2
MS-SQL Micorsoft SQL Server 2016(SP1-CU5)

Table & Column Description 가져오기


※MS-SQL 자체에 저장되어 있는 Table과 Column의 설명 및 정보를 가져와보자.

다른 DB도 마찬가지겠지만 (오라클은 있었던걸로 기억...)

아무튼 DB자체에도 테이블과 컬럼의 설명을 넣을수 있도록 되어 있다.

개인적으로는 문서로 만들어 놓는거 보다(실컷 문서를 뒤졌는데 새롭게 추가된 컬럼이였으면 안적혀있을때가 많다...)

그냥 필요할때 검색해서 보면 되니 DB자체 Description을 더 선호한다.


DECLARE @TABLE_NAME NVARCHAR(50) = '테이블이름';
SELECT D.COLORDER                AS COLUMN_IDX            -- Column Index
     , A.NAME                    AS TABLE_NAME            -- Table Name
     , C.VALUE                    AS TABLE_DESCRIPTION    -- Table Description
     , D.NAME                    AS COLUMN_NAME            -- Column Name
     , E.VALUE                    AS COLUMN_DESCRIPTION    -- Column Description
     , F.DATA_TYPE                AS TYPE                    -- Column Type
     , F.CHARACTER_OCTET_LENGTH    AS LENGTH                -- Column Length
     , F.IS_NULLABLE            AS IS_NULLABLE            -- Column Nullable
     , F.COLLATION_NAME            AS COLLATION_NAME        -- Column Collaction Name
  FROM SYSOBJECTS A WITH (NOLOCK)
  INNER JOIN SYSUSERS B WITH (NOLOCK)        ON A.UID = B.UID
  INNER JOIN SYSCOLUMNS D WITH (NOLOCK)        ON D.ID = A.ID
  INNER JOIN INFORMATION_SCHEMA.COLUMNS F WITH (NOLOCK)
     ON A.NAME = F.TABLE_NAME
    AND D.NAME = F.COLUMN_NAME
   LEFT OUTER JOIN SYS.EXTENDED_PROPERTIES C WITH (NOLOCK)
     ON C.MAJOR_ID = A.ID
    AND C.MINOR_ID = 0
    AND C.NAME = 'MS_Description'
   LEFT OUTER JOIN SYS.EXTENDED_PROPERTIES E WITH (NOLOCK)
     ON E.MAJOR_ID = D.ID
    AND E.MINOR_ID = D.COLID
    AND E.NAME = 'MS_Description'   
  WHERE 1=1
    AND A.TYPE = 'U'
    AND A.NAME = @TABLE_NAME
  ORDER BY D.COLORDER




보고 있는 글과 같이 보면 좋은 글들..


+ Recent posts