증상
데이터 정의 언어 (DDL)를 사용 하 여 테이블을 수정 하 고 다음 Microsoft SQL Server 2008의 테이블을 저장 하려고 하면 다음과 같은 메시지가 나타날 수 있습니다.
변경 내용 저장 허용 되지 않습니다. 변경 내용을 삭제 하 고 다시 만든 다음 표 필요 합니다. 있는 내용을 하나 다시 만들 수 없거나 하는 변경 내용을 저장 안 함 옵션을 사용 하는 테이블에 변경 내용이 필요한 테이블을 다시 만들어야 합니다.
원인
테이블에 다음 변경 중 하나 이상을 확인 하 고 표 재작성 해야 하는 변경 내용을 저장 안 함 옵션을 사용 하면이 문제가 발생 합니다.
- 열의 Null 허용 설정을 변경합니다.
- 테이블의 열 순서를 변경 하는.
- 열 데이터 형식 변경
- 새 열을 추가 합니다.
해결 방법
이 문제를 해결 하려면 Transact SQL 문을 사용 하 여 테이블의 메타 데이터 구조를 변경 합니다. 자세한 내용은 SQL Server 온라인 설명서의 다음 항목을 참조 하십시오.
http://msdn.microsoft.com/en-us/library/ms190273.aspx
예를 들어 MyDate 형식으로 날짜 시간 테이블 열을 변경 하려면 MyTable 에서는 NULL 값을 허용 하도록 호출:
중요: 테이블 다시 생성 해야 하는 변경 내용을 저장 안 함 옵션을 해제 하 여이 문제를 해결 작동 하지 않습니다 하는 것이 좋습니다. 이 옵션을 해제의 위험성에 대 한 자세한 내용은 "추가 정보" 절을 참조 하십시오.
http://msdn.microsoft.com/en-us/library/ms190273.aspx
예를 들어 MyDate 형식으로 날짜 시간 테이블 열을 변경 하려면 MyTable 에서는 NULL 값을 허용 하도록 호출:
alter table MyTable alter column MyDate7 datetime NULL
중요: 테이블 다시 생성 해야 하는 변경 내용을 저장 안 함 옵션을 해제 하 여이 문제를 해결 작동 하지 않습니다 하는 것이 좋습니다. 이 옵션을 해제의 위험성에 대 한 자세한 내용은 "추가 정보" 절을 참조 하십시오.
상태
Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열한 제품에서 버그를 확인했습니다.
자세한 내용
테이블 다시 생성 해야 하는 변경 내용을 저장 안 함 옵션을 변경 하려면 다음과이 같이 하십시오.
테이블에 대해 변경 내용 추적 기능을 사용할지를 결정 하려면 다음이 단계를 수행 합니다.
변경 내용 추적 기능을 사용 하는 경우 Transact SQL 문을 사용 하 여 테이블의 메타 데이터 구조를 변경 합니다.
- SQL Server Management Studio (SSMS)를 엽니다.
- 도구 메뉴에서, 옵션을 클릭합니다.
- 옵션 창의 탐색 창에서 디자이너를 클릭 합니다.
- 선택 하거나 표 재작성 해야 하는 변경 내용을 저장 안 함 확인란의 선택을 취소 하 고 확인을 누릅니다.
"표 재작성 해야 하는 변경 내용을 저장 안 함" 옵션을 해제 하면 위험
이 옵션을 해제 하면 테이블을 다시 만들지 않도록 하는 데 도움이 수, 있지만 변경 내용 손실 될 수도 있습니다. 예를 들어, 테이블에 변경 내용을 추적 하는 SQL Server 2008의 변경 내용 추적 기능을 설정 하면 됩니다. 하도록 테이블을 다시 만들어야 하는 작업을 수행할 때 "현상" 절에 나와 있는 오류 메시지가 나타납니다. 그러나이 옵션을 해제 하면 테이블을 다시 만들 때 기존 변경 내용 추적 정보 삭제 됩니다. 따라서 옵션을 해제 하 여이 문제를 해결 작동 하지 않습니다 하는 것이 좋습니다.테이블에 대해 변경 내용 추적 기능을 사용할지를 결정 하려면 다음이 단계를 수행 합니다.
- SQL Server Management Studio 개체 탐색기에서 테이블을 찾습니다.
- 테이블을 마우스 오른쪽 단추로 클릭 한 다음 속성을 클릭 합니다.
- 표 속성 대화 상자에서 변경 내용 추적을 클릭 합니다.
변경 내용 추적 기능을 사용 하는 경우 Transact SQL 문을 사용 하 여 테이블의 메타 데이터 구조를 변경 합니다.
이 문제를 재현하는 단계
- SQL Server Management Studio 테이블 디자이너 도구에서 기본 키를 포함 하는 테이블을 만듭니다.
- 이 테이블이 포함 된 데이터베이스를 마우스 오른쪽 단추로 클릭 한 다음 속성을 클릭 합니다.
- 데이터베이스 속성 대화 상자에서 변경 내용 추적을 클릭 합니다.
- 변경 내용 추적 항목의 값을 True로 설정 하 고 확인을 클릭 합니다.
- 테이블을 마우스 오른쪽 단추로 클릭 한 다음 속성을 클릭 합니다.
- 표 속성 대화 상자에서 변경 내용 추적을 클릭 합니다.
- 변경 내용 추적 항목의 값을 True로 설정 하 고 확인을 클릭 합니다.
- 도구 메뉴에서, 옵션을 클릭합니다.
- 옵션 대화 상자에서 디자이너를 클릭 합니다.
- 테이블 다시 생성 해야 하는 변경 내용을 저장 안 함 확인란을 선택 하려면 클릭 한 다음 클릭 확인 합니다.
- 테이블 디자이너 도구에서 기존 열에서 Null 허용 설정을 변경 합니다.
- 테이블에 변경 내용을 저장 하십시오.