[SQL] MSSQL 인덱스가 선언된 상태에서 컬럼 타입 변경
만약 'TEST' 테이블을 생성하고 'IDX_TEST' 인덱스까지 생성한 경우,
인덱스가 없는 상태에서는 컬럼 타입을 변경할 때 문제가 발생하지 않지만,
인덱스가 있는 상태에서 컬럼 타입을 변경하려는 순간 에러 메세지가 출력되면서 변경이 되지 않는다.
이럴때 아래와 같은 방법을 사용하면 된다.
예) 만약 TEST 테이블의 CONTENT VARCHAR(255)를 TEXT 타입으로 변경
1) 인덱스 삭제
DROP INDEX TEST.IDX_TEST
2) 데이터 타입변경
ALTER TABLE TEST
ALTER COLUMN CONTENT TEXT
3) 인덱스 생성
CREATE INDEX IDX_TEST ON TEST (SEQ,MID,NAME,RGDATE) WITH PAD_INDEX, FILLFACTOR = 50
★ TEXT 타입은 인덱스 정의할 수 없다.
인덱스가 없는 상태에서는 컬럼 타입을 변경할 때 문제가 발생하지 않지만,
인덱스가 있는 상태에서 컬럼 타입을 변경하려는 순간 에러 메세지가 출력되면서 변경이 되지 않는다.
이럴때 아래와 같은 방법을 사용하면 된다.
예) 만약 TEST 테이블의 CONTENT VARCHAR(255)를 TEXT 타입으로 변경
1) 인덱스 삭제
DROP INDEX TEST.IDX_TEST
2) 데이터 타입변경
ALTER TABLE TEST
ALTER COLUMN CONTENT TEXT
3) 인덱스 생성
CREATE INDEX IDX_TEST ON TEST (SEQ,MID,NAME,RGDATE) WITH PAD_INDEX, FILLFACTOR = 50
★ TEXT 타입은 인덱스 정의할 수 없다.
댓글