아래와 같은 방법으로 주석을 달고 삭제하며

조회가 가능하다.


--테이블 코멘트 추가

EXEC sp_addextendedproperty 'MS_Description', '테이블설명', 'USER', DBO, 'TABLE', 테이블이름

--테이블 코멘트 삭제

EXEC sp_dropextendedproperty 'MS_Description', 'SCHEMA', DBO, 'TABLE', 테이블이름, DEFAULT, DEFAULT

 

 

-- 칼럼 코멘트 추가

EXEC sp_addextendedproperty 'MS_Description', '컬럼설명', 'USER', DBO, 'TABLE', 테이블이름, 'COLUMN', 칼럼이름

-- 칼럼 코멘트 삭제

EXEC sp_dropextendedproperty 'MS_Description', 'SCHEMA', DBO, 'TABLE', 테이블이름, 'COLUMN', 칼럼이름

 

 

--테이블 코멘트 조회

SELECT OBJTYPE, OBJNAME, NAME, VALUE

FROM ::FN_LISTEXTENDEDPROPERTY (NULL, 'SCHEMA', 'DBO', 'TABLE', '테이블이름', DEFAULT, DEFAULT)

 

--컬럼 코멘트 조회

SELECT OBJTYPE, OBJNAME, NAME, VALUE

FROM ::FN_LISTEXTENDEDPROPERTY(NULL, 'SCHEMA', 'DBO', 'TABLE', '테이블이름', 'COLUMN', DEFAULT)

 

 

-- 전체 테이블 코멘트 조회

SELECT

        NAME

        , (SELECT VALUE FROM SYS.EXTENDED_PROPERTIES WHERE MAJOR_ID = A.ID AND MINOR_ID = 0 ) COMMENT

FROM SYSOBJECTS A

WHERE RTRIM(A.XTYPE) = 'U'

ORDER BY NAME

 

 

-- 전체 테이블 별 칼럼 코멘트 조회

SELECT      u.name + '.' + t.name AS [table],

            td.value AS [table_desc],

            c.name AS [column],

            cd.value AS [column_desc]

FROM        sysobjects t

INNER JOIN  sysusers u

    ON      u.uid = t.uid

LEFT OUTER JOIN sys.extended_properties td

    ON      td.major_id = t.id

    AND     td.minor_id = 0

    AND     td.name = 'MS_Description'

INNER JOIN  syscolumns c

    ON      c.id = t.id

LEFT OUTER JOIN sys.extended_properties cd

    ON      cd.major_id = c.id

    AND     cd.minor_id = c.colid

    AND     cd.name = 'MS_Description'

WHERE t.type = 'u'

ORDER BY    t.name, c.colorder

 








Posted by motolies
,