재우니 개발자 블로그

테이블이 수십, 수백 개가 넘어갈 때 어떤 테이블의 어느 컬럼이 자동 증가(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 작업이 필요한 테이블들을 미리 파악하고 대비하실 수 있을 것입니다!