기존의 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');
위의 양식에 맞춰 테이블명과 컬럼명만 수정하여 명령어를 실행시켜줍니다.
해당 테이블, 컬럼에 적용되어있는 제약조건 명을 확인할 수 있습니다.
제약조건 삭제
위의 쿼리문에서 추출한 제약조건명을 복사합니다.
ALTER TABLE ACND0120
DROP CONSTRAINT DF__ACND0120__HUMIDI__11158940;
위는 예시 쿼리문입니다.
ALTER TABLE '테이블명'
DROP CONSTRAINT '제약조건명';
테이블명과 제약조건명을 수정하여 쿼리문을 실행해주면 제약조건이 삭제됩니다.
컬럼 설정 변경
ALTER TABLE ACND0120
ALTER COLUMN HUMIDITY INT;
ALTER TABLE '테이블명'
ALTER COLUMN '컬럼명' '변경할 설정';
제약조건이 삭제되어 컬럼 설정 변경이 가능합니다.
변경 후 필요한 제약조건을 다시 세팅해줍니다.
'DataBase > MSSQL' 카테고리의 다른 글
[MSSQL] 스케줄러 작업 (MSSQL Scheduled Job) (2) | 2024.08.17 |
---|---|
[MSSQL] SSMS SQL Server 에이전트(에이전트 XPs 사용 안 함) 사용 설정 (0) | 2024.08.16 |
[MSSQL] MSSQL 서버 연결/접속하기 (0) | 2024.07.30 |
[MSSQL] MSSQL Server 설치하기 (0) | 2024.07.25 |