[ERR] MSSQL 기존 DEFAULT 값 변경

아무튼 간에·2022년 5월 20일
0

에러/오류

목록 보기
6/9

개발환경

OS: Windows 10
IDE: eclipse 2022-03, DBeaver
JAVA: 17
Tomcat: 9.0


상황

다른 DB를 사용할 땐 DBeaver에서 제공하는 UI에서 바로 수정했었는데
MSSQL은 호락호락하지 않았다...


해결

반드시 기존 default 제약조건을 삭제하고 새로 지정해야 한다.

  1. 현재 제약 조건 확인
    EXEC SP_HELP {테이블명}
    ex > EXEC SP_HELP employee

  2. 기존 default 제약 조건 삭제
    ALTER TABLE {테이블명} DROP CONSTRAINT {제약조건 ID};
    ex > ALTER TABLE employee DROP CONSTRAINT DF__employee_a__inser__25518C25;

  3. 새로운 값을 가진 제약 조건을 새로 지정
    ALTER TABLE {테이블명} ADD CONSTRAINT {제약조건 ID} default {default 값} FOR {컬럼명};
    ex > ALTER TABLE employee ADD CONSTRAINT df_employee_insert_date default format(getdate(),'yyyyMMddHHmmss') FOR insert_date;


그런데...
툴에선 현재 제약 조건을 확인하는 명령어를 사용할 수가 없다...

서버 정보를 요청하면 되긴 한데 그냥 편법을 썼다....

  1. DBeaver에서 냅다 컬럼을 삭제 (이미 default가 지정되어 있는 컬럼만)
  2. default 제약조건 ID와 함께 해당 컬럼을 삭제할 수 없다는 메시지가 발생
  3. 2에서 알려준 default 제약조건 ID를 복사해서 위의 2번부터 실행

따라하진 마세요...


참고

profile
armton garnet

0개의 댓글