DataBase/MSSQL

[MSSQL] 컬럼 수정시 ”Saving changes is not permitted.” 에러가 뜰경우

범데이 2024. 4. 13. 23:35

1. 상황

MSSQL에서 테이블을 수정하려고 하면 아래의 에러가 나오는 경우가 있다.

 

MSSQL 공식 홈페이지에 따르면, 이는 다음과 같은 경우에 발생한다.

  • 컬럼의 널 허용 옵션을 수정할 경우
  • 컬럼의 정렬 순서를 변경할 경우
  • 컬럼의 데이터 타입을 변경할 경우
  • 새로운 컬럼을 추가했을 경우
  • 테이블의 filegroup이나 해당 text/image 데이터를 변경할 경우

테이블의 메타데이터 구조를 변경하기 위해 테이블을 변경한 다음 테이블을 저장하는 경우 이러한 변경 사항에 따라 테이블을 다시 만들어야 한다.

이로 인해 테이블을 다시 생성하는 동안 메타 데이터가 손실되고 데이터가 직접 손실될 수 있기에, 위를 옵션으로 선택할 수 있게 둔 후, 기본적으로 막아준다고 한다.

(하지만 필자가 현업에서 위 옵션을 비활성화 한 후, 테이블의 컬럼 속성을 변경 및 저장했다고 해서 데이터가 손실되는 등의 상황은 한번도 발생하지 않았다.)

 

 

이 점을 인지한 상태에서, 옵션을 비활성화 하는 방법은 다음과 같다.

 

 

 

2. 해결방법

SSMS 상단 툴바에서 ToolsOptions

 

 

Designer → “Prevent saving changes that require table re-creation

해당 부분의 체크를 지우고 “OK” 버튼을 눌러 적용하면 된다.

반응형