MSSQL 테이블, 칼럼 설명(코멘트) 추가하기.
테이블을 생성하거나, 칼럼을 생성하고 추가할 때 comment를 작성해주면 보기에도 편하고 다음에 새로운 사람이 왔을 때도 해당 테이블의 역할과 칼럼이 무슨 의미인지 알 수 있어서 좋습니다. 또한, 칼럼안에 데이터의 상태 값의 분류에 대해서도 적어줘도 좋습니다.
아직까지 이 기능에 대해서 모르거나.. 추가를 하지 않았다면.. 같이 협업 하는 사람들을 위해서라도 추가하고 공유하는게 좋을 것 같습니다. :)
- TABLE COMMENT 조회
SELECT
OBJTYPE,
OBJNAME,
NAME,
VALUE
FROM ::FN_LISTEXTENDEDPROPERTY (NULL, 'SCHEMA', 'DBO', 'TABLE', '테이블 이름', DEFAULT, DEFAULT);
- COLUMN COMMENT 조회
OBJTYPE,
OBJNAME,
NAME,
VALUE
FROM ::FN_LISTEXTENDEDPROPERTY(NULL, 'SCHEMA', 'DBO', 'TABLE', '테이블 이름', 'COLUMN', DEFAULT);
- TABLE 정보 조회
SELECT
A.TABLE_NAME,
C.VALUE AS TABLE_COMMENT,
A.COLUMN_NAME,
A.DATA_TYPE,
ISNULL(CAST(A.CHARACTER_MAXIMUM_LENGTH AS VARCHAR), CAST(A.NUMERIC_PRECISION AS VARCHAR) + ',' + CAST(A.NUMERIC_SCALE AS VARCHAR) ) AS COLUMN_LENGTH ,
A.COLUMN_DEFAULT ,
A.IS_NULLABLE ,
B.VALUE AS COLUM_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS A
LEFT OUTER JOIN SYS.EXTENDED_PROPERTIES B ON B.MAJOR_ID = OBJECT_ID(A.TABLE_NAME)
AND A.ORDINAL_POSITION = B.MINOR_ID LEFT OUTER JOIN (
SELECT OBJECT_ID(OBJNAME) AS TABLE_ID , VALUE
FROM ::FN_LISTEXTENDEDPROPERTY (NULL, 'USER','DBO','TABLE', NULL, NULL, NULL) ) C ON OBJECT_ID(A.TABLE_NAME) = C.TABLE_ID
WHERE A.TABLE_NAME = '테이블 이름'
ORDER BY A.TABLE_NAME, A.ORDINAL_POSITION;
- COMMNET 추가
--TABLE
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '입금내역', 'USER', DBO, 'TABLE', 테이블 이름;
--COLUMN
EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '등록일시', 'USER', DBO, 'TABLE', 테이블 이름, 'COLUMN', REG_DATE;
- COMMENT 업데이트
--TABLE
EXEC SP_UPDATEEXTENDEDPROPERTY 'MS_DESCRIPTION', '테이블설명', 'USER', DBO, 'TABLE',테이블 이름
--COLUMN
EXEC SP_UPDATEEXTENDEDPROPERTY 'MS_DESCRIPTION', '컬럼설명', 'USER', DBO, 'TABLE', 테이블 이름, 'COLUMN', 컬럼 이름;