본문 바로가기
DB & SQL

[MSSQL] Table과 Column의 Description 추가, 수정하기

by 무사뎀벨레 2022. 12. 16.

 

 

 

 

테이블과 컬럼의 디스크립션 확인


아래의 쿼리를 통하여 테이블과 컬럼의 디스크립션이 있는지 확인을 한 뒤, 테이블과 컬럼의 디스크립션을 추가, 수정할 수 있습니다.

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

댓글