티스토리 뷰

MSSQL에서 특정 Column을 포함하는 Table 찾기

MSSQL에서 특정 컬럼(Column)이 포함된 테이블을 검색하는 방법은 INFORMATION_SCHEMA.COLUMNS 또는 sys.columns 뷰를 활용하는 것입니다.


🔹 1️⃣ INFORMATION_SCHEMA.COLUMNS 사용 (추천)

가장 간단한 방법으로 스키마 내 모든 테이블에서 특정 컬럼을 포함하는 테이블을 찾을 수 있음

SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = '찾을_컬럼명';

결과: 해당 컬럼이 포함된 모든 테이블 목록을 출력
테이블명과 스키마명 포함

예제: USER_ID 컬럼이 포함된 모든 테이블 찾기

SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'USER_ID';

🔹 2️⃣ sys.columns + sys.tables 사용

MSSQL 시스템 뷰를 활용하여 특정 컬럼을 포함하는 테이블을 검색

SELECT t.name AS TableName, c.name AS ColumnName
FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
WHERE c.name = '찾을_컬럼명';

결과: 특정 컬럼이 존재하는 테이블 목록 출력

예제: EMAIL 컬럼이 포함된 테이블 찾기

SELECT t.name AS TableName
FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
WHERE c.name = 'EMAIL';

🔹 3️⃣ 특정 데이터베이스에서 검색 (DB_NAME)

여러 개의 데이터베이스가 있는 경우 특정 데이터베이스에서 검색 가능

USE myDatabase;
GO
SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = '찾을_컬럼명';

결론

방법 장점 단점

INFORMATION_SCHEMA.COLUMNS SQL 표준, 가독성 좋음 성능이 sys.columns보다 다소 낮음
sys.columns + sys.tables 성능 우수, 시스템 테이블 활용 테이블 스키마 정보 없음

📌 추천:

  • 일반적인 경우 → INFORMATION_SCHEMA.COLUMNS
  • 성능이 중요한 경우 → sys.columns 🚀

'Skill > DB' 카테고리의 다른 글

MSSQL] INDEX 목록 조회  (0) 2025.03.25
[Postgresql] 날짜시간 추출, EXTRACT()  (0) 2022.10.27
[query] 내역과 누적합계  (0) 2022.09.07
QUERY Paging  (0) 2022.09.06
최종 데이터만 조회하기  (0) 2022.08.30
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함