테이블이 수십, 수백 개가 넘어갈 때 어떤 테이블의 어느 컬럼이 자동 증가(IDENTITY)로 설정되어 있는지 한눈에 파악하는 것은 데이터베이스 관리와 마이그레이션 작업에 아주 중요하죠!
MSSQL에서 제공하는 시스템 뷰(System Views)를 조인(JOIN)하여 활용하면 이 정보를 아주 쉽게 전체 목록으로 뽑아볼 수 있습니다.
🔍 자동 증가(IDENTITY) 컬럼 전체 조회 쿼리
아래 쿼리를 실행하시면 현재 접속해 있는 데이터베이스 내의 모든 자동 증가 컬럼 목록을 확인할 수 있습니다.
SELECT
s.name AS [Schema_Name], -- 스키마명 (예: dbo)
t.name AS [Table_Name], -- 테이블명
c.name AS [Identity_Column_Name], -- 자동 증가가 설정된 컬럼명
c.seed_value AS [Seed_Value], -- 시작값 (보통 1)
c.increment_value AS [Increment] -- 증가값 (보통 1)
FROM
sys.tables t
INNER JOIN
sys.schemas s ON t.schema_id = s.schema_id
INNER JOIN
sys.identity_columns c ON t.object_id = c.object_id
ORDER BY
t.name;
💡 쿼리 결과 설명
- sys.tables: 데이터베이스 내의 사용자 테이블 정보가 담겨 있습니다.
- sys.identity_columns: 데이터베이스 내에서 IDENTITY 속성이 부여된 모든 컬럼의 정보만 따로 모아둔 시스템 뷰입니다.
- 위 쿼리를 실행하면 각 테이블마다 어떤 컬럼이 IDENTITY인지, 그리고 몇 번부터 시작해서(Seed_Value) 얼마씩 증가하는지(Increment) 한눈에 파악할 수 있어 관리하기 매우 편리합니다.
이제 이 쿼리 결과를 바탕으로 앞서 하셨던 SET IDENTITY_INSERT 작업이 필요한 테이블들을 미리 파악하고 대비하실 수 있을 것입니다!