--테이블 코멘트 추가 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 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' and t.name = '테이블명' -- 테이블명 설정시 테이블만 조회, 이 조건을 제외하면 전체 조회 ORDER BY t.name, c.colorder ;
MSSQL 칼럼 설명 추가, 테이블 설명 추가 스크립트. 테이블명명. 칼럼명위치에 원하는 테이블 ,칼럼을 입력하면 된다.
테이블을 생성하거나, 칼럼을 생성하고 추가할 때 comment를 작성해주면 보기에도 편하고 다음에 새로운 사람이 왔을 때도 해당 테이블의 역할과 칼럼이 무슨 의미인지 알 수 있어서 좋습니다. 또한, 칼럼안에 데이터의 상태 값의 분류에 대해서도 적어줘도 좋습니다. 아직까지 이 기능에 대해서 모르거나.. 추가를 하지 않았다면.. 같이 협업 하는 사람들을 위해서라도 추가하고 공유하는게 좋을 것 같습니다. :)
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 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;
--TABLE EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '입금내역', 'USER', DBO, 'TABLE', 테이블 이름; --COLUMN EXEC SP_ADDEXTENDEDPROPERTY 'MS_DESCRIPTION', '등록일시', 'USER', DBO, 'TABLE', 테이블 이름, 'COLUMN', REG_DATE;
--TABLE EXEC SP_UPDATEEXTENDEDPROPERTY 'MS_DESCRIPTION', '테이블설명', 'USER', DBO, 'TABLE',테이블 이름 --COLUMN EXEC SP_UPDATEEXTENDEDPROPERTY 'MS_DESCRIPTION', '컬럼설명', 'USER', DBO, 'TABLE', 테이블 이름, 'COLUMN', 컬럼 이름; |