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에서는 다른 답변에서 이미 식별된 새로운 옵션이 도입되었습니다.
이러한 변경을 막는 것은 처음에는 직관에 반하는 것처럼 보일 수 있습니다.개발 서버에서는 확실히 귀찮은 일입니다.그러나 프로덕션 서버에서는 이러한 변경을 방지하는 이 옵션과 기본값이 잠재적인 수명을 연장할 수 있습니다.
문제를 재현하는 순서
- SQL Server Management Studio의 Table Designer 도구에 기본 키가 포함된 테이블을 생성합니다.
- 이 테이블을 포함하는 데이터베이스를 마우스 오른쪽 버튼으로 누른 다음 속성을 누르십시오.
- [ Database Properties ]대화 상자에서 [Change Tracking]을 클릭합니다.
- 변경 추적 항목의 값을 참으로 설정한 다음 확인을 누르십시오.
- 테이블을 마우스 오른쪽 버튼으로 누른 다음 속성을 누르십시오.
- [테이블 속성]대화 상자에서 [추적 변경]을 클릭합니다.
- 변경 추적 항목의 값을 참으로 설정한 다음 확인을 누르십시오.
- 도구 메뉴에서 옵션을 누르십시오.
- 옵션 대화 상자에서 디자이너를 누르십시오.
- [테이블 재작성이 필요한 변경 저장 금지]체크박스를 켜고 [확인]을 클릭합니다.
- Table Designer 도구에서 기존 열의 Allow Nulls 설정을 변경합니다.
- 변경 내용을 테이블에 저장해 보십시오.
언급URL : https://stackoverflow.com/questions/1969096/saving-changes-after-table-edit-in-sql-server-management-studio
'programing' 카테고리의 다른 글
SQL Server에서 특정 테이블을 참조하는 모든 외부 키를 나열하려면 어떻게 해야 합니까? (0) | 2023.04.07 |
---|---|
SQL Server 텍스트 유형 대 varchar 데이터 유형 (0) | 2023.04.07 |
SQL Server의 CASE 문에서는 OR이 지원되지 않습니다. (0) | 2023.04.07 |
SQL : <=와 >= 사이 (0) | 2023.04.07 |
.NET 콘솔애플리케이션의 글로벌 예외 핸들러 (0) | 2023.04.07 |