SQL Management Studio 2008을 사용하고 있습니다.

Management Studio 2008

Management Studio 2008

테이블의 변경이 발생했을 경우 SMS2008의 테이블 디자이너에서는 변경내역이 저장되지 않는 문제가 있었습니다. 아래와 같은 경고 메시지를 보여주면서요.

Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created.

또한 사용자에게 ‘Cancel’과 ‘Save Text File’이라는 버튼만 보여준 채 ‘Cancel’을 클릭하면 사용자가 변경을 취소했다는 메시지를 보여줍니다. 취소하고 싶어서, 취소를 누른건 아니잖아요…?

Management Studio 2008

Management Studio 2008

이는 SQL Server 2008 Books Online (March 2009)에서 확인할 수 있었는데요.

  • 테이블의 중간에 새로운 컬럼이 추가되는 경우.
  • 컬럼을 삭제하는 경우.
  • 컬럼의 nullability를 변경하는 경우.
  • 컬럼의 순서를 변경하는 경우.
  • 컬럼의 타입을 변경하는 경우.

위 다섯 가지에 해당 되는 테이블의 변경사항은 SMS2008의 테이블 디자이너에서는 변경할 수 없었습니다. SQL서버는 테이블이 삭제되었고,  이미 만들어진 테이블을 삭제하고, 다시 생성해야 하기 때문이라고 합니다. 2008에서는 테이블의 변경에 대해 경각심을 주겠다는 의도로 옵션을 만들어두어 기본값은 재생성을 할 수 없도록 하지 않았나 생각해 봅니다. 물론 ALTER [TABLE]과 같은 DDL을 사용한다면 아무런 제약이 없습니다.

이러한 문제를 해결하기 위해서 다음과 같이 조취합니다.

메뉴에서 도구 -> 옵션 -> 디자이너를 선택합니다. ‘Prevent saving changes that require table re-creation’의 체크를 해제하면 SMS2008에서 테이블 디자인의 변경이 가능해집니다.

Management Studio 2008

Tools -> Options -> Designers

Management Studio 2008

'Prevent saving changes that require table re-creation'의 체크를 해제합니다.