본문 바로가기

DBMS/SQL Server

[SQL Server] ALTER COLUMN 사용시 열을 수정할 수 없는 경우

 

INT형 데이터 형식의 컬림이 오버플로 오류가 발생하여 BIGINT형으로 변경해야하는 경우가 있다.

 

아래와 같이 실행하였을 때 오류가 발생한다.

해당 열에 DEFAULT 제약조건이 걸려있어서 수정할 수 없는 오류이다.

 

 

 

제약조건을 확인해보면 해당 열에 DEFAULT 제약조건이 걸려있음을 확인할 수 있다.

 

 

 

해당 열의 데이터 형식을 변경하기 위해서

  1. DEFAULT 제약조건 삭제

  2. 데이터 형식 변경

  3. 다시 DEFAULT 제약조건 추가

 

 

 

ALTER COLUMN은 명명된 열을 변경하도록 지정한다. 하지만 다음과 같은 열은 수정할 수 없다.

  1. 데이터 형식이 timestamp인 열

  2. 테이블의 ROWGUIDCOL

  3. 계산 열이나 계산 열에 사용된 열

  4. 인덱스에 사용된 열

  5. CREATE STATISTICS 문으로 생성된 통계에 사용된 열

  6. PRIMARY KEY 또는 FOREIGN KEY 제약조건에 사용된 열

  7. CHECK 또는 UNIQUE 제약조건에 사용된 열

  8. 기본 값 정의에 연결된 열. 그러나 데이터 형식이 변경되지 않은 경우 열의 길이는 변경 가능

 

 

참고 : http://technet.microsoft.com/ko-kr/library/ms190273(v=sql.100).aspx