programing

SQL Server 2008에서 테이블 설계를 변경할 수 없음

minimums 2023. 10. 25. 23:12
반응형

SQL Server 2008에서 테이블 설계를 변경할 수 없음

테이블을 만들었습니다.tbl_Candidate, 하지만 제가 기본 키를 테이블에 설정하는 것을 잊어버려서 기본 키 없이 저장해 두었습니다.

다음에 SQL Server 2008 Express에서 기본 키를 설정할 때 기본 키가 변경된 테이블을 저장할 때 테이블을 삭제하고 재생성하라는 메시지가 나타납니다.

테이블에 변경사항을 저장하려고 할 때 나타나는 메시지입니다.

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

Windows 인증, 데이터베이스 엔진으로 서버 유형, 서버 이름으로 SQL Server에 로그인했습니다..\SQLExpress.

이 문제를 수정할 수 있는 방법이나 SQL Server의 설정을 변경할 수 있는 방법을 알려주세요.

답은 MSDN 사이트에 있습니다.

Save (Not Permissioned) 대화상자에서는 변경한 내용을 저장하려면 나열된 테이블을 삭제하고 다시 만들어야 하므로 변경 내용을 저장할 수 없다고 경고합니다.

다음 작업을 수행하려면 테이블을 다시 만들어야 할 수 있습니다.

  • 표 가운데에 새 열 추가
  • 열 삭제
  • 열 무효화 변경
  • 열 순서 변경
  • 열의 데이터 유형 변경

편집 1:

여기에서 유용한 추가 정보:

테이블 재작성이 필요한 변경 내용 저장 방지 옵션을 변경하려면 다음 단계를 수행합니다.

  1. SQL Server Management Studio(SSMS)를 엽니다.
  2. 도구 메뉴에서 옵션을 클릭합니다.
  3. 옵션 창의 탐색 창에서 설계자를 클릭합니다.
  4. 테이블을 다시 만들어야 하는 변경 내용 저장 방지 확인란을 선택하거나 선택 취소한 다음 확인을 클릭합니다.

참고 이 옵션을 사용하지 않도록 설정하면 변경한 내용이 테이블의 메타데이터 구조를 변경했다는 경고가 테이블을 저장할 때 표시되지 않습니다.이 경우 테이블을 저장할 때 데이터가 손실될 수 있습니다.

테이블을 다시 작성해야 하는 변경 내용 저장 방지 옵션을 해제할 위험

이 옵션을 해제하면 테이블을 다시 만들지 않을 수 있지만 변경사항이 손실될 수도 있습니다.예를 들어 SQL Server 2008에서 변경 추적 기능을 실행하여 테이블의 변경 사항을 추적한다고 가정합니다.테이블을 다시 만드는 작업을 수행하면 "Symptoms" 섹션에 언급된 오류 메시지가 나타납니다.그러나 이 옵션을 해제하면 테이블이 다시 생성될 때 기존 변경 추적 정보가 삭제됩니다.따라서 옵션을 해제하여 이 문제를 해결하지 않는 것이 좋습니다.

Settings, screen shot

테이블을 다시 만들어야 하는 변경 내용 저장 방지

5번의 빠른 클릭

Prevent saving changes that require table re-creation in five clicks

  1. 도구들
  2. 옵션들
  3. 디자이너
  4. 테이블을 다시 만들어야 하는 변경 내용 저장 방지
  5. .

저장 후 이 절차를 반복하여 상자를 다시 선택합니다.이를 통해 우발적인 데이터 손실을 방지할 수 있습니다.

추가설명

  • 기본적으로 SQL Server Management Studio는 테이블을 삭제하면 데이터 내용이 손실되므로 테이블 삭제를 방지합니다.*

  • 테이블 설계 보기에서 열의 데이터 유형을 변경할 때 변경 내용을 저장할 때 데이터베이스는 테이블을 내부적으로 삭제한 다음 새 테이블을 다시 만듭니다.

*당신의 테이블이 비어있기 때문에 당신의 구체적인 상황은 결과를 초래하지 않을 것입니다.절차에 대한 이해를 높이기 위해 전적으로 이 설명을 드립니다.

테이블에 대한 제약 조건을 직접 추가할 수 있습니다.

ALTER TABLE TableName
ADD CONSTRAINT ConstraintName PRIMARY KEY(ColumnName)
GO 

기본 키 열에 null 값이 없어야 합니다.

옵션 2:

SQL Management Studio 옵션을 다음과 같이 변경할 수 있습니다.

이 옵션을 변경하려면 도구 메뉴에서 옵션을 클릭하고 설계자를 펼친 다음 테이블 및 데이터베이스 설계자를 클릭합니다.테이블을 다시 만들어야 하는 변경 내용 저장 방지 확인란을 선택하거나 선택 취소합니다.

SQL Server Management Studio -> Tools -> Options -> Designer로 이동한 후 "테이블을 다시 만들어야 하는 변경 내용 저장 방지" 옵션의 선택을 취소합니다.

언급URL : https://stackoverflow.com/questions/9870968/cant-change-table-design-in-sql-server-2008

반응형