문제

SQL Server에서 열을 삭제하지 않고 계산 열을 변경하는 방법을 아는 사람이 있습니까?열을 계산 열로 사용하는 것을 중단하고 열에 직접 데이터를 저장하기 시작하되 현재 값을 유지하고 싶습니다.

이것이 가능합니까?

도움이 되었습니까?

해결책

내가 아는 바는 아니지만 여기 당신이 할 수 있는 일이 있습니다.

계산 된 열의 값으로 해당 열 업데이트에 다른 열을 추가 한 다음 계산 된 열을 떨어 뜨립니다.

다른 팁

좋아, 내가 이 말을 제대로 이해했는지 보도록 할게요.현재 계산된 열을 가져와 일반 데이터 열로 만들고 싶습니다.일반적으로 이렇게 하면 열이 삭제되지만 열의 데이터는 유지하려고 합니다.

  1. 소스 테이블의 기본 키 열과 생성된 열을 사용하여 새 테이블을 만듭니다.
  2. 원본 테이블의 데이터를 새 테이블에 복사합니다.
  3. 소스 테이블의 열을 변경합니다.
  4. 데이터를 다시 복사하십시오.

당신이 무엇을 하든 열을 변경하면 해당 항목이 삭제될 것이라고 확신합니다.이 방법은 조금 더 복잡하지만 그렇게 나쁘지는 않으며 데이터를 절약합니다.

[편집하다:@SqlMenace의 답변이 훨씬 쉽습니다.:) 당신을 저주하세요!:)]

클라이언트 코드를 손상시키지 않기 위해 열 이름을 유지해야 하는 경우 열을 삭제하고 동일한 이름으로 저장된 열을 다시 추가해야 합니다.단일 트랜잭션에서 (SQLMenace 솔루션에 따라) 변경을 수행하면 가동 중지 시간 없이 이를 수행할 수 있습니다.다음은 의사 코드입니다.

begin transaction
   drop computed colum X
   add stored column X
   populate column using the old formula
commit transaction
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top