테이블과 컬럼의 디스크립션 확인
아래의 쿼리를 통하여 테이블과 컬럼의 디스크립션이 있는지 확인을 한 뒤, 테이블과 컬럼의 디스크립션을 추가, 수정할 수 있습니다.
SELECT TA.[OBJECT_ID] AS '테이블 ID'
, TA.[NAME] AS '테이블 명'
, TC.[VALUE] AS '테이블 설명'
, TB.[COLUMN_ID] AS '컬럼 ID'
, TB.[NAME] AS '컬럼 명'
, TD.[VALUE] AS '컬럼 설명'
FROM sys.objects TA
INNER
JOIN sys.columns TB
ON TA.[object_id] = TB.[object_id]
LEFT OUTER
JOIN sys.extended_properties TC
ON TA.[object_id] = TC.major_id
AND TC.minor_id = 0
AND TC.[name] = 'MS_Description'
LEFT OUTER
JOIN sys.extended_properties TD
ON TB.[object_id] = TD.major_id
AND TB.column_id = TD.minor_id
AND TD.[name] = 'MS_Description'
WHERE 1=1
AND TA.[type] = 'U'
-- AND CONVERT(nvarchar(200),TA.[name]) LIKE '%'+'검색할 테이블 명'+'%'
-- AND CONVERT(nvarchar(200),TB.[name]) LIKE '%'+'검색할 컬러명'+'%'
ORDER BY TA.[object_id], TB.[column_id]
테이블, 컬럼의 디스크립션 추가, 수정
디스크립션의 추가와 수정은 아래 두 가지를 사용합니다.
디스크립션 추가 : AddExtendedProperty
기존에 디스크립션이 등록되지 않은 경우, 추가를 위해서 사용합니다.
디스크립션 수정 : UpdateExtendedProperty
기존 등록되어있는 디스크립션을 수정할 수 있습니다.
DECLARE @DB_USER NVARCHAR(100) = 'dbo';
DECLARE @TABLE_NAME NVARCHAR(100) = '테이블이름';
DECLARE @COLUMN_NAME NVARCHAR(100) = '컬럼이름';
DECLARE @DESCRIPTION NVARCHAR(1000) = '설명';
-- 테이블(추가 / 수정)
EXEC SP_ADDEXTENDEDPROPERTY 'MS_Description', @DESCRIPTION, 'user', @DB_USER, 'table', @TABLE_NAME
EXEC SP_UPDATEEXTENDEDPROPERTY 'MS_Description', @DESCRIPTION, 'user', @DB_USER, 'table', @TABLE_NAME
-- 컬럼(추가 / 수정)
EXEC SP_ADDEXTENDEDPROPERTY 'MS_Description', @DESCRIPTION, 'user', @DB_USER, 'table', @TABLE_NAME, 'column', @COLUMN_NAME
EXEC SP_UPDATEEXTENDEDPROPERTY 'MS_Description', @DESCRIPTION, 'user', @DB_USER, 'table', @TABLE_NAME, 'column', @COLUMN_NAME
예를 들어, TB_TEST라는 테이블의 디스크립션을 추가, 수정한다면 아래와 같이 나타낼 수 있습니다.
-- TB_TEST 테이블의 디스크립션 추가, 수정
EXEC SP_ADDEXTENDEDPROPERTY 'MS_Description', 'TB_TEST 테이블의 디스크립션 추가', 'SCHEMA', 'dbo', 'TABLE', 'TB_TEST'
EXEC SP_UPDATEEXTENDEDPROPERTY 'MS_Description', 'TB_TEST 테이블의 디스크립션 수정', 'SCHEMA', 'dbo', 'TABLE', 'TB_TEST'
또한, TB_TEST라는 테이블의 TEST_COLUMN 컬럼의 디스크립션을 추가, 수정할 수 있습니다.
-- TB_TEST 테이블의 TEST_COLUMN컬럼의 디스크립션 추가, 수정
EXEC SP_ADDEXTENDEDPROPERTY 'MS_Description', 'TB_TEST 테이블의 디스크립션 추가', 'SCHEMA', 'dbo', 'TABLE', 'TB_TEST', 'column', 'TEST_COLUMN'
EXEC SP_UPDATEEXTENDEDPROPERTY 'MS_Description', 'TB_TEST 테이블의 디스크립션 수정', 'SCHEMA', 'dbo', 'TABLE', 'TB_TEST', 'column', 'TEST_COLUMN'
반응형
'DB & SQL' 카테고리의 다른 글
[SQL] JOIN의 정의와 사용법 (1) | 2023.07.13 |
---|---|
[MSSQL] IN과 NOT IN 사용하기 (2) | 2023.04.11 |
SQL에서의 WHERE 1=1 (2) | 2022.12.13 |
[MSSQL] WITH(NOLOCK) - 테이블 잠금 해제 (2) | 2022.09.07 |
날짜, 시간 연산(DATEADD) (2) | 2022.06.02 |
댓글