0 투표
SQLServer(MSSQL) 서버에서 자동증가형 필드 숫자 초기화 하는 쿼리가 어떻게 되나요?

1 답변

0 투표

자동증가형(IDENTITY) 컬럼의 다음 값(시드)을 초기화하는 방법은 보통 2가지입니다.

  1. 테이블 데이터를 모두 비워도 되는 경우(가장 간단)
  • TRUNCATE TABLE을 쓰면 데이터가 전부 삭제되면서 IDENTITY도 초기화됩니다.
  • 단, 외래키로 참조되고 있으면 TRUNCATE가 막힐 수 있습니다.

예) TRUNCATE TABLE dbo.테이블명;

  1. 데이터는 지우거나 일부만 지우고, IDENTITY만 원하는 값으로 맞추고 싶은 경우
  • DBCC CHECKIDENT로 재설정합니다.
  • 주의: reseed 값은 “다음에 들어갈 값 - 1” 개념입니다. 예를 들어 다음 ID를 1부터 시작하고 싶으면 reseed를 0으로 설정합니다.

예) 다음 값을 1로 만들고 싶을 때 DBCC CHECKIDENT (‘dbo.테이블명’, RESEED, 0);

예) 다음 값을 1000으로 만들고 싶을 때 DBCC CHECKIDENT (‘dbo.테이블명’, RESEED, 999);

추가 팁

  • 이미 데이터가 남아있는 상태에서 너무 작은 값으로 reseed하면, 이후 INSERT 시 PK 중복 오류가 날 수 있습니다.
  • 안전하게 하려면 현재 최대값을 확인한 뒤 그 이상으로 맞추는 게 좋습니다. 예) SELECT MAX(Identity컬럼) FROM dbo.테이블명;

구로역 맛집 시흥동 맛집
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
...