데이터베이스, 테이블, 컬럼을 쿼리로 검색 하는 방법

2016. 2. 24. 15:20프로그래밍/데이터베이스

반응형

MS-SQL은 SSMS를 워낙 잘 만들어놔서 GUI로 보는게 편하긴 하다.

그래도 가끔 동적쿼리를 만들거나 할 때, 테이블 이름이나 컬럼 이름이 필요한 경우가 있는데 이럴때 쓰는 쿼리를 소개한다.

--데이터베이스 이름 조회
SELECT NAME FROM SYS.DATABASES WHERE NAME NOT IN('MASTER', 'MODEL', 'MSDB', 'TEMPDB')
--테이블리스트 조회(현재 접속된 데이터베이스)
SELECT NAME, OBJECT_ID FROM SYS.TABLES WHERE NAME = '테이블명'
--컬럼 리스트 조회
SELECT A.NAME [컬럼명], TYPE_NAME(A.system_type_id) [컬럼타입], A.MAX_LENGTH [컬럼크기]
  FROM SYS.COLUMNS A
  LEFT JOIN SYS.TABLES B ON A.OBJECT_ID = B.OBJECT_ID
 WHERE B.NAME = '테이블명'

 

반응형

 

여기에서 사용되는 주요 테이블은 다음과 같다.

sys.databases 에서 현재 시스템의 데이터베이스를 검색.

sys.tables 에서 현재 데이터베이스의 테이블 검색.

sys.columns 에서 현재 테이블의 칼럼 검색.

TYPE\_NAME(type\_id)를 이용하여 타입명 보기 쉽게 변경함.
반응형