문제

계산 된 열이 호출되었습니다 Cost 그것은 돈을 반환합니다.

반환하는 다른 열이 있고 싶습니다 (Cost * 2), 그러나 그것은 나를 허용하지 않습니다.

도움이 되었습니까?

해결책

계산 된 열은 다른 계산 된 열을 참조 할 수 없습니다. 참조하고 싶은 표현을 반복 할 수 있어야하지만. MSDN에서:

계산 된 열은 동일한 테이블의 다른 열을 사용할 수있는 표현식에서 계산됩니다. 표현은 a 비수성 열 이름, 상수, 기능 및 하나 이상의 연산자가 연결하는 모든 조합. 표현은 하위 쿼리가 될 수 없습니다.

또한 이것이 당신이 원하는대로 작동한다면, 당신이 다루어야 할 모든 종류의 새로운 문제를 제시 할 것이라고 덧붙여 야합니다. 현재 많은 열/행에 대한 업데이트는 병렬 및 원자 적으로 발생합니다.

따라서 정확히 값이 없기 때문에 계산에 계산 된 열을 사용하는 것은 의미가 없습니다. 무엇이든, 당신은 기존의 업데이트 된 값을 사용하고있을 것입니다.

실제로 표현을 복제하는 것을 피하고 싶다면 ~할 수 있었다 방아쇠로 이것을하십시오. ~ 아니다 그렇게. 방아쇠는 재미가 없으며 드문 경우에 매우 정통한 사람들 만 사용해야합니다.

다른 팁

당신은 그것을 정의해야합니다 테이블의 기본 열에 대해.

computed_column_expression은 계산 된 열의 값을 정의하는 표현식입니다. 계산 된 열은 열이 지속되지 않는 한 테이블에 물리적으로 저장되지 않은 가상 열입니다. 열은 같은 테이블의 다른 열을 사용하는 표현식에서 계산됩니다. 예를 들어, 계산 된 열은 정의를 가질 수 있습니다. 표현식은 하나 이상의 연산자로 연결된 이들의 조합이 아닌 열이없는 열 이름, 상수, 기능, 가변 및 이들 조합 일 수있다. 표현식은 하위 쿼리가 될 수 없거나 별칭 데이터 유형을 포함 할 수 없습니다.

유지 보수를 쉽게하기 위해 동일한 스칼라 UDF (동일한 열에서 전달)를 사용하고 논리의 일관성을 보장하도록 리팩토링 할 수 있지만 성능 히트는 엄청나고 스칼라 UDF를 최후의 수단으로 만 사용합니다.

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