본문 바로가기
DATABASE/MsSQL

[DBA][MsSQL] 자주 쓰는 쿼리 - Table Description / 테이블 정보

by DANEW 2023. 7. 25.

Intro

안녕하세요.

초보 DBA 다뉴입니다.

 

테이블과 컬럼에 대한 정보가 필요할 때가 있는데요.

데이터 타입과 길이가 어떻게 되는지, 이 컬럼이 뭘 뜻하는지 코멘트 등 알고 싶은 정보를 한번에 알 수 있는 쿼리에 대해서 한번 알아보도록 하겠습니다.


Query

Table Description 쿼리

select c.colorder as column_index,
       a.name as table_name,
       e.value as table_description,
       c.name as column_name,
       f.value as column_description,
       d.data_type as type,
       d.character_octet_length as length,
       d.is_nullable as is_nullable,
       d.collation_name as collation_name
  from SYSOBJECTS as a with(nolock)
 inner join SYSUSERS as b with(nolock)
    on a.uid = b.uid
 inner join SYSCOLUMNS as c with(nolock)
    on c.id = a.id
 inner join INFORMATION_SCHEMA.COLUMNS as d with(nolock)
    on d.table_name = a.name
   and d.column_name = c.name
  left outer join SYS.EXTENDED_PROPERTIES as e with(nolock)
    on e.major_id = a.id
   and e.minor_id = 0
   and e.name = 'MS_Description'
  left outer join SYS.EXTENDED_PROPERTIES as f with(nolock)
    on f.major_id = c.id
   and f.minor_id = c.colid
   and f.name = 'MS_Description'
 where a.type = 'U'
   and a.name = '[Table_Name]'
 order by c.colorder

[Table_Name] : 해당 위치에 찾고싶은 테이블 명을 넣습니다.

컬럼 설명

  • column_index : 컬럼 순서
  • table_name : 테이블 명칭
  • table_description : 테이블 코멘트
  • column_name : 컬럼 명칭
  • column_description : 컬럼 코멘트
  • type : 컬럼 데이터 타입
  • length : 컬럼 데이터 타입 길이
  • is_nullable : Null 허용 유무
  • collation_name : 데이터 정렬 이름 
    • Korean_Wansung_CI_AS : 대소문자 구분하지 않음
    • Korean_Wansung_CS_AS : 대소문자 구분 함

사용 테이블 설명

1. SYSOBJECTS

제약 조건, 기본값, 로그, 규칙 및 저장 프로시저와 같이 데이터베이스 내에서 생성되는 각 개체에 대해 하나의 행을 포함합니다.

 

자세한 설명은 아래의 공식 문서를 참고해주세요.

 

sys.sysobjects (Transact-SQL) - SQL Server

Contains one row for each object that is created within a database, such as a constraint, default, log, rule, and stored procedure.

learn.microsoft.com

2. SYSUSERS

데이터베이스의 각 Microsoft Windows 사용자, Windows 그룹, Microsoft SQL Server 사용자 또는 SQL Server 역할에 대해 하나의 행을 포함합니다.

 

자세한 설명은 아래의 공식 문서를 참고해주세요.

 

sys.sysusers (Transact-SQL) - SQL Server

sys.sysusers (Transact-SQL)

learn.microsoft.com

3. SYSCOLUMNS

모든 테이블과 보기의 모든 열에 대해 하나의 행을 반환하고 데이터베이스의 저장 프로시저에 있는 각 매개변수에 대해 행을 반환합니다.

 

자세한 설명은 아래의 공식 문서를 참고해주세요.

 

sys.syscolumns (Transact-SQL) - SQL Server

sys.syscolumns (Transact-SQL)

learn.microsoft.com

4. INFORMATION_SCHEMA.COLUMNS

현재 데이터베이스의 현재 사용자가 액세스할 수 있는 각 열에 대해 하나의 행을 반환합니다.

 

자세한 설명은 아래의 공식 문서를 참고해주세요.

 

COLUMNS (Transact-SQL) - SQL Server

COLUMNS (Transact-SQL)

learn.microsoft.com

5. SYS.EXTENDED_PROPERTIES 

현재 데이터베이스의 각 확장 속성에 대한 행을 반환합니다.

 

자세한 설명은 아래의 공식 문서를 참고해주세요.

 

sys.extended_properties (Transact-SQL) - SQL Server

Extended Properties Catalog Views - sys.extended_properties

learn.microsoft.com

 

이렇게 System Table, System View등을 통한 조합으로 테이블의 정보를 조회합니다!

 


Outro

여러 테이블들을 확인하는 쉬운 쿼리를 하나 알아봤는데요.

제가 관리하는 데이터베이스에는 몇천개의 테이블들이 있어서 하나하나 개체 탐색기에서 눈으로 찾기란 쉽지않습니다.

이렇게 업무 중 테이블명을 보고 궁금하다면 바로 쿼리로 찾아보는게 쉬울때가 더 많더라구요!

다른 분들에게도 도움이 되었으면 좋겠네요!

 

그럼 다음에도 좋은 내용으로 찾아뵙겠습니다.

감사합니다.

반응형