programing

SQL Server Management Studio에서 테이블 편집 후 변경 사항 저장

telebox 2023. 4. 7. 21:08
반응형

SQL Server Management Studio에서 테이블 편집 후 변경 사항 저장

이전에 SQL Server Management Studio에 저장된(테이블에 데이터가 없음) 테이블에 변경 내용을 저장하는 경우 다음과 같은 오류 메시지가 나타납니다.

변경 내용을 저장할 수 없습니다.변경한 내용을 적용하려면 다음 테이블을 삭제하고 다시 생성해야 합니다.다시 만들 수 없는 테이블을 변경하거나 테이블을 다시 만들어야 하는 변경 사항 저장 금지 옵션을 사용 가능으로 설정했습니다.

표를 쉽게 편집할 수 없는 것은 무엇입니까?아니면 SQL Server Management Studio에서 편집을 위해 테이블을 다시 작성해야 하는 일반적인 방법입니까?"변경 저장 방지 옵션"은 무엇입니까?

[툴(Tools)]-> [옵션(Options)]-> [디자이너(Designers)]-> [테이블 재작성이 필요한 변경 저장 방지(Provent save changes that re-creation)]체크보일라.

이것은 때때로 어떤 것을 바꾸기 위해 테이블을 떨어뜨리고 다시 만들어야 하기 때문에 발생합니다.모든 데이터를 임시 테이블에 복사한 후 새 테이블에 다시 삽입해야 하므로 이 작업은 시간이 걸릴 수 있습니다.기본적으로 SQL Server는 사용자를 신뢰하지 않으므로 "확인, 내가 하는 일을 알고 있으니 이제 내가 할 일을 하게 해주세요."라고 말해야 합니다.

도구 | 옵션 | 설계자 | 테이블 및 데이터베이스 설계자

"테이블 재작성이 필요한 변경 사항 저장 금지" 옵션의 선택을 취소합니다.

이 문제를 해결하려면 SQL 문을 사용하여 테이블의 메타데이터 구조를 변경합니다.

문제는 "테이블 재작성이 필요한 변경 사항 저장 금지" 옵션을 사용할 때 발생합니다.

출처: SQL Server 2008에서 테이블을 저장하려고 하면 "변경 내용을 저장할 없습니다"라는 오류 메시지가 나타납니다.

상자(잘못된 솔루션)의 선택을 취소하는 대신 데이터 편집을 중지해야 합니다.데이터를 변경해야 할 경우 스크립트를 사용하여 데이터를 쉽게 운영 환경에 이식하고 소스 제어 하에 둘 수 있도록 합니다.또, 실가동이 개발로 이행된 후에 테스트 변경을 갱신하는 것도 용이하게 되어, 개발자는 보다 새로운 데이터에 대응할 수 있게 됩니다.

SSMS에 접속하여 테스트합니다.

[메뉴] > [툴]> [옵션]> [디자이너]> [테이블 재작성이 필요한 변경 저장 금지]체크박스를 끄겠습니다

이에 대한 매우 좋은 설명은 다음과 같습니다.http://blog.sqlauthority.com/2009/05/18/sql-server-fix-management-studio-error-saving-changes-in-not-permitted-the-changes-you-have-made-require-the-following-tables-to-be-dropped-and-re-created-you-have-either-made-changes-to-a-tab/

SQL Server Management Studio의 테이블 에디터에서 매우 쉽고 시각적으로 변경할 수 있는 많은 변경은 실제로 SSMS가 테이블을 백그라운드에서 삭제하고 처음부터 다시 작성해야 합니다.열의 순서 변경과 같은 간단한 작업도 표준 SQL DDL 문으로 표현할 수 없습니다.SSMS가 할 수 있는 일은 테이블을 드롭하고 다시 작성하는 것뿐입니다.

이 조작은 a) 큰 테이블에서 매우 시간이 걸릴 수 있습니다.또는 b) 다양한 이유(FK 제약조건 등)로 인해 실패할 수도 있습니다.따라서 SQL Server 2008의 SSMS에서는 다른 답변에서 이미 식별된 새로운 옵션이 도입되었습니다.

이러한 변경을 막는 것은 처음에는 직관에 반하는 것처럼 보일 수 있습니다.개발 서버에서는 확실히 귀찮은 일입니다.그러나 프로덕션 서버에서는 이러한 변경을 방지하는 이 옵션과 기본값이 잠재적인 수명을 연장할 수 있습니다.

문제를 재현하는 순서

  1. SQL Server Management Studio의 Table Designer 도구에 기본 키가 포함된 테이블을 생성합니다.
  2. 이 테이블을 포함하는 데이터베이스를 마우스 오른쪽 버튼으로 누른 다음 속성을 누르십시오.
  3. [ Database Properties ]대화 상자에서 [Change Tracking]을 클릭합니다.
  4. 변경 추적 항목의 값을 참으로 설정한 다음 확인을 누르십시오.
  5. 테이블을 마우스 오른쪽 버튼으로 누른 다음 속성을 누르십시오.
  6. [테이블 속성]대화 상자에서 [추적 변경]을 클릭합니다.
  7. 변경 추적 항목의 값을 참으로 설정한 다음 확인을 누르십시오.
  8. 도구 메뉴에서 옵션을 누르십시오.
  9. 옵션 대화 상자에서 디자이너를 누르십시오.
  10. [테이블 재작성이 필요한 변경 저장 금지]체크박스를 켜고 [확인]을 클릭합니다.
  11. Table Designer 도구에서 기존 열의 Allow Nulls 설정을 변경합니다.
  12. 변경 내용을 테이블에 저장해 보십시오.

언급URL : https://stackoverflow.com/questions/1969096/saving-changes-after-table-edit-in-sql-server-management-studio

반응형