SQL Server에서 계산된 열
을 일반 열로 변경하는 방법
SQL Server를 작업하고 있다면, 계산된 열을 일반 열로 변경해야 하는 상황에 직면할 수 있습니다. 이는 데이터를 표현식을 기반으로 자동으로 계산하는 대신, 해당 열에 직접 저장하기 시작하고 싶을 때 필요할 수 있습니다. 불행히도 SQL Server는 기존의 계산된 열을 비계산된 열로 간단하게 변경하는 것을 허용하지 않으며, 이 때 데이터도 유지되지 않습니다. 하지만 원하는 결과를 달성할 수 있는 우회 방법이 있습니다. 이 블로그 포스트에서는 과정을 단계별로 설명하겠습니다.
계산된 열 이해하기
해결 방법에 들어가기 전에 계산된 열이 무엇인지 이해하는 것이 중요합니다.
- 계산된 열: SQL Server의 계산된 열은 같은 테이블의 다른 열을 포함하는 표현식에서 파생된 가상 열입니다. 행이 검색되거나 수정될 때마다 값이 자동으로 계산됩니다.
- 예: 예를 들어,
first_name
과last_name
열에서 파생된full_name
열이 있다면, SQL Server는 테이블을 쿼리할 때마다full_name
을 계산합니다.
이제 현재 값을 보존하면서 계산된 열을 일반 열로 변경하는 데 필요한 단계를 살펴보겠습니다.
단계별 해결책
단계 1: 테이블에 새 열 추가
첫 번째 단계는 기존 테이블에 계산된 열에 있던 값을 궁극적으로 보유할 새 열을 만드는 것입니다. 방법은 다음과 같습니다:
ALTER TABLE YourTableName ADD NewColumnName DataType;
YourTableName
을 테이블 이름으로 바꾸고, NewColumnName
을 새 열의 이름으로, DataType
을 예상되는 값에 따라 원하는 데이터 유형으로 (예: VARCHAR
, INT
, 등) 변경하세요.
단계 2: 계산된 열에서 데이터 복사
다음으로, 계산된 열에서 새로 만든 열로 데이터를 전송해야 합니다. UPDATE
문을 사용하여 이를 수행할 수 있습니다:
UPDATE YourTableName SET NewColumnName = ComputedColumnName;
ComputedColumnName
을 데이터 복사를 위해 사용 중인 계산된 열의 실제 이름으로 바꾸는 것을 잊지 마세요.
단계 3: 계산된 열 삭제
이제 새 열에 값을 저장했으므로, 이전의 계산된 열을 삭제할 수 있습니다. 이렇게 하면 테이블의 공간이 확보되고 변환이 완료됩니다:
ALTER TABLE YourTableName DROP COLUMN ComputedColumnName;
단계 4: 새 열 이름 변경 (선택 사항)
일관성을 위해 새 열의 이름을 이전의 계산된 열과 동일하게 하고 싶다면 다음을 사용할 수 있습니다:
EXEC sp_rename 'YourTableName.NewColumnName', 'ComputedColumnName', 'COLUMN';
과정 요약
계산된 열을 비계산된 열로 변경하기 위해서는 다음과 같은 간단한 단계를 따르세요:
- 새 열 추가: 테이블에.
- 데이터 복사: 계산된 열에서 새 열로.
- 계산된 열 삭제.
- (선택 사항) 새 열 이름 변경: 원래 이름을 유지하기 위해.
결론
SQL Server는 계산된 열을 일반 열로 직접 변경하는 것을 허용하지 않지만, 위의 단계들은 기존 데이터를 잃지 않고 실용적인 해결책을 제공합니다. 새 열을 추가하고, 데이터를 복사한 후 계산된 열을 삭제함으로써 원하는 결과를 효과적으로 이룰 수 있습니다.
이 블로그가 유익하다고 생각되거나 이 정보를 통해 도움이 될 사람을 알고 있다면, 자유롭게 공유하세요! 더 많은 SQL Server 팁과 요령을 원하신다면 저희 블로그를 계속 지켜봐 주시기 바랍니다.