MSSQL 테이블 컬럼 조회 - MSSQL teibeul keolleom johoe

테이블명 검색하기

SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_NAME LIKE '%테이블명%'

컬럼명 검색하기

SELECT * FROM information_schema.COLUMNS WHERE COLUMN_NAME LIKE '%컬럼명%'

TIP

MSSQL 테이블 컬럼 조회 - MSSQL teibeul keolleom johoe

도구 > 옵션 > 키보드 > 쿼리바로가기에 단축키로 명령문 입력해두고

'%검색명%' 을 블록지정후에 [Ctrl + 7 ] or [Ctrl + 8] 입력해서 검색가능 

MSSQL 테이블 컬럼 조회 - MSSQL teibeul keolleom johoe

수많은 테이블을 가지고 있는 데이터베이스에서 원하는 컬럼이 포함된 테이블들만 조회하고 싶을 때,

아래의 시스템 테이블들을 이용하여 조회할 수 있다.

SELECT a.name AS 테이블명, b.name AS 컬럼명  

FROM sys.tables a 

INNER JOIN sys.columns b ON a.object_id = b.object_id  

WHERE b.name = '원하는컬럼명'

cs

예를 들어 보자.

bank 라는 데이터베이스에서 gold 라는 컬럼을 가진 테이블을 모두 조회하고 싶다.

이럴 경우 아래와 같이 조회 할 수 있다.

-- bank 데이터베이스로 이동 

USE bank 

-- gold 라는 컬럼을 가진 모든 테이블 조회 

SELECT a.name AS 테이블명, b.name AS 컬럼명  

FROM sys.tables a 

INNER JOIN sys.columns b ON a.object_id = b.object_id  

WHERE b.name = 'gold'

cs

[조회 결과]

테이블명 컬럼명
saving_tbl gold
deposit_tbl gold

만약 원하는 컬럼명을 정확히 모를 경우에는 like 를 사용해서 조회할 수도 있다.

SELECT a.name AS 테이블명, b.name AS 컬럼명  

FROM sys.tables a 

INNER JOIN sys.columns b ON a.object_id = b.object_id  

WHERE b.name LIKE '%원하는컬럼명%'

cs

LIKE 절의 % 는 아무 문자나 올 수 있다는 뜻이다.

즉, gold 라는 문구를 포함하고 앞 뒤로 아무 문자나 올 수 있다는 말이다.

예를 들어보자.

역시나 bank 라는 데이터베이스에서 특정컬럼을 가진 모든 테이블을 조회하고 싶다.

근데 컬럼명에 gold 라는 문구가 들어가는데 정확하지 않다.

이럴 경우 아래와 같이 조회할 수 있다.

-- bank 데이터베이스로 이동 

USE bank 

-- gold 라는 문자를 포함한 컬럼을 가진 모든 테이블 조회 

SELECT a.name AS 테이블명, b.name AS 컬럼명  

FROM sys.tables a 

INNER JOIN sys.columns b ON a.object_id = b.object_id  

WHERE b.name LIKE '%gold%'

cs

[조회 결과]

테이블명 컬럼명
user_tbl bank_gold
saving_tbl gold
deposit_tbl gold
loan_tbl gold_loan

이렇게 gold 라는 문자를 포함하며 앞 뒤로 다른 문자가 있는 컬럼명을 가진 모든 테이블을 조회할 수 있다.