문제

우리 회사는 최근에 데이터 마이그레이션 (SQL Server 2005 데이터베이스에서)을 수행했으며 Select로 생성 된 일부 테이블이 원래 테이블의 계산 된 필드를 유지하지 못했지만 대신 SQL Server가 원래 계산. 예를 들어이 테이블이 있다고 가정합니다.

create table Example (
 id int not null,
 quantity decimal(19,5) not null,
 price decimal(19,5) not null,
 total as price*quantity 
)

SELECT *를 수행 한 후 예제에서 예제에서 다음과 같이받습니다.

create table Example2 (
 id int not null,
 quantity decimal(19,5) not null,
 price decimal(19,5) not null,
 total decimal(38,9) null
)

잘못된 필드를 떨어 뜨리고 재현하는 것을 고쳤지만 Select에 생성 된 테이블에 계산 된 필드를 유지하는 방법이 있는지 알고 싶습니다 (일부 특수 SQL 서버 구성 또는 대체 SQL 명령을 사용 함).

미리 감사드립니다.

도움이 되었습니까?

해결책

나는 당신이 Select In에 이것을 할 수 있다고 생각하지 않습니다. 당신이보기에 대해 선택하는 것처럼, 결과를 가져 와서 새 테이블로 펌핑하는 것입니다.

컴퓨팅 된 열을 먼저 사용한 다음 비 컴퓨터 열의 소스 테이블에서 정기적으로 삽입해야합니다.

다른 팁

정책으로서, 특히 마이그레이션에서 테이블을 만들기 위해 Select를 사용하지 않는 것이 가장 좋습니다. 당신은 계산을 잃을뿐만 아니라 인덱스, 트리거 및 아마도 기본값이나 제약을 잃게됩니다. 마이그레이션에서는 트리거, 인덱스 등을 포함하여 이동하려는 테이블을 항상 스크립트해야합니다.

내 이해는 새로운 테이블이 레코드 세트의 데이터 유형에서 생성된다는 것입니다. 그러나 레코드 세트에는 결과 값이 생성되는 방법에 대한 정보가 포함되어 있지 않으므로 계산 공식이 손실됩니다. (극단적으로, 선택의 소스로 그룹을 포함하는보기를 생각하십시오)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top