본문 바로가기

MS-SQL

mssql 변경 내용을 저장할 수 없습니다. 변경 내용을 적용하려면 다음 테이블을 삭제하고... 오류해결

변경 내용을 저장할 수 없습니다. 변경 내용을 적용하려면 다음 테이블을 삭제하고 다시 만들어야 합니다. 다시 만들 수 없는 테이블을 변경했거나 [테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함] 옵션을 설정했습니다.


위의 오류메시지는 테이블에 다음과 같은 영향을 주는 경우 발생합니다.

  • 열의 Null 허용 설정을 변경한 경우.
  • 테이블의 열 순서를 변경한 경우.
  • 열의 데이터 형식을 변경한 경우.
  • 새 열을 추가한 경우.

MS-SQL을 설치후 생성한 테이블을 수정하려고 하면 위와 같은 오류 메시지가 뜨면서 테이블 변경사항이 적용되지 않는 경우가 있습니다. 이 때 간단한 옵션해제를 통해 문제를 해결할 수 있습니다.


해결방법은 다음과 같습니다. (증상원인 및 해결방법 MS Docs 보러가기)

  1. SQL Server Management Studio (SSMS)를 엽니다.
  2. 도구 메뉴에서, 옵션을 클릭합니다.
  3. 옵션 창의 탐색 창에서 디자이너를 클릭 합니다.
  4. 선택 하거나 [표 재작성 해야 하는 변경 내용을 저장 안 함] 확인란의 선택을 취소하고 확인을 누릅니다.

SSMS > Tools > Options




자, 위와 같은 작업으로 일단 문제는 해결했습니다.

하지만 이게 뭐길래 기본으로 기능을 사용하도록 체크가 되어있었던 것인지 알고는 넘어가야 합니다.


이건 MS-SQL 2008버전 부터 제공되는 "변경내용 추적"이라는 기능입니다.

MS Docs의 친절한 해설을 여기에서 확인해 보시면 되는데, @.@ 친절한 설명이지만 더 모르겠네요.


제가 파악한 바는 이렇습니다. 

변경 내용 추적기능이란 쉽게 말해 "테이블의 어떤 행에 변경이 발생했는가, 변경에 대한 정보와 수행시점을 시스템에서 자동으로 저장해주는 기능"입니다. 단, 주의할 것은 테이블 행을 변경했다는 사실은 캡처하지만 변경된 데이터를 캡처하지는 않는다는 것입니다.


프로젝트의 성공을 기원합니다.