본문 바로가기
DataBase/MSSQL

[MSSQL] 컬럼 설정 변경 안될 때 해결 방법

by 리요_ 2024. 12. 30.
반응형

MSSQL 컬럼 설정 변경 안될 때 해결방법
The object 'DF__테이블명__컬럼명__1F98B2C1' is dependent on column '컬럼명'

 

MSSQL 컬럼 설정 변경 안될 때 해결방법
The object 'DF__테이블명__컬럼명__1F98B2C1' is dependent on column '컬럼명'

기존의 float 컬럼을 int 로 변경하려니 제약조건으로 인해 변경이 불가하다는 경고문이 나타납니다.

 

The object 'DF__ACND0100__PM025__1F98B2C1' is dependent on column 'PM1'.

The object 'DF__테이블명__컬럼명__1F98B2C1' is dependent on column '컬럼명'

DF__ACND0100__PM025__1F98B2C1 이라는 제약조건이 해당 컬럼을 사용하고 있어 변경할 수 없다는 안내입니다.

 

제약조건을 삭제하고 컬럼을 변경할 수 있는 쿼리문입니다.

 

제약조건 조회

SELECT name

FROM sys.default_constraints

WHERE parent_object_id = OBJECT_ID('ACND0120')

AND parent_column_id = COLUMNPROPERTY(OBJECT_ID('ACND0120'), 'HUMIDITY', 'ColumnId');

 

위 쿼리문은 제 쿼리문을 기준으로 나타낸 예시입니다.

 

SELECT name

FROM sys.default_constraints

WHERE parent_object_id = OBJECT_ID('테이블명')

AND parent_column_id = COLUMNPROPERTY(OBJECT_ID('테이블명'), '컬럼명', 'ColumnId');

 

위의 양식에 맞춰 테이블명과 컬럼명만 수정하여 명령어를 실행시켜줍니다.

 

MSSQL 컬럼 설정 변경 안될 때 해결방법
The object 'DF__테이블명__컬럼명__1F98B2C1' is dependent on column '컬럼명'

 

해당 테이블, 컬럼에 적용되어있는 제약조건 명을 확인할 수 있습니다.


 제약조건 삭제 

위의 쿼리문에서 추출한 제약조건명을 복사합니다.

 

ALTER TABLE ACND0120

DROP CONSTRAINT DF__ACND0120__HUMIDI__11158940;

 

위는 예시 쿼리문입니다. 

 

ALTER TABLE '테이블명'

DROP CONSTRAINT '제약조건명';

 

테이블명과 제약조건명을 수정하여 쿼리문을 실행해주면 제약조건이 삭제됩니다.


컬럼 설정 변경

 

ALTER TABLE ACND0120

ALTER COLUMN HUMIDITY INT;

 


ALTER
 TABLE '테이블명'

ALTER COLUMN '컬럼명' '변경할 설정';

 

제약조건이 삭제되어 컬럼 설정 변경이 가능합니다.

변경 후 필요한 제약조건을 다시 세팅해줍니다.

 

반응형