2012-03-14 5 views

답변

6

다음과 같이 계산 열 사양에 대한 구문은 다음 열 값은 데이터베이스 내에 저장 될

column-name AS formula 

경우, 다음과 같이 유지 된 키워드 구문에 추가되어야

column-name AS formula PERSISTED 

당신은 예를 언급하지 않았다, 그러나 당신이 열 "sumOfAAndB가"는 A와 B의 합계를 계산하기 위해 추가하고자한다면, 당신의 구문은

ALTER TABLE tblExample ADD sumOfAAndB AS A + B 
0처럼 보인다

희망이 도움이됩니다.

+2

거기에 마지막으로'ALTER TABLE ....'문장에'PERSISTED'를 추가 할 것입니다. 그렇지 않으면 합계가 해당 테이블의 모든'SELECT'에서 다시 계산됩니다 - 그리 효율적이지는 않습니다 ... –

+1

안녕하세요 마크, 나는 PERSISTED를 언급했지만, 당신 말이 맞습니다. 나는 합계가 결정론 적이기 때문에 그렇게해야한다고 말했어 야했다. 포스터가 수동으로 문서를 조작하여 올바른 작업을 수행하는 방법에 대한 정보를 얻을 수 있다면 더 좋을 것입니다 ... – ExternalUse

2

이 열을 테이블에 추가하는 대신 추가 열을 계산하고 그 값을 읽으려면 View을 사용하는 것이 좋습니다. 여기

여기에 뷰를 생성하는 방법에 대한 튜토리얼 :

http://odetocode.com/Articles/299.aspx


귀하의보기과 같이 보일 것이다 질문 : 당신은보기를 사용할 수 있습니다

SELECT 
    ColumnA, ColumnB, (ColumnA+ColumnB) as ColumnC 
    FROM 
    [TableName] 
+0

thx 젠체하는 사람, 오랜 시도 후에 그것을 발견했다! 명령은 입니다.'변경 테이블 my_table은 (열 1 + 열 2) ' 입니다. xx입니다. – Neuvill

+0

걱정하지 마세요. @Neuvill, 그러나 게시 한 스크립트가 귀하의 요구 사항에 맞는지 확신 할 수 없습니다. 테이블에 변경 사항이 있으면'my_column' 값이 업데이트되지 않습니다. – Curt

+1

@ Curt no iv 시도해 보겠습니다. 구문이 정확합니다. 'my_column' 열이 자동으로 업데이트 될 때마다'(column1 + column2) '의 대괄호를 삭제합니다. 그럴만 한 이유는 – Neuvill

1

을하지만, 보기에 액세스 할 때마다 값을 계산하는 데 드는 비용을 들이지 않으려는 경우 PERSISTED 계산 된 값을 사용하려고 할 수 있습니다.

CREATE TABLE T1 (
    a INT, 
    b INT, 
    operator CHAR, 
    c AS CASE operator 
     WHEN '+' THEN a+b 
     WHEN '-' THEN a-b 
     ELSE a*b 
    END 
    PERSISTED 
) ; 

SQL docs는 물론 SQL 서버를 사용하는 가정을 참조하십시오.

+0

이라고 생각합니다. 어떤 메신저를 검색하는 것이 아니라 ... 그 intersting, 나는 언젠가 그것을 사용할 것입니다! 젠장! – Neuvill

+0

기본적으로 올바른 대답으로 표시된 대답과 같지만 약간 더 복잡한 예입니다. – Phil

+0

difirence는 우리가 연산자를 언급해야한다는 것입니다. – Neuvill

0

UPDATE table_name SET total = mark1+mark2+mark3;

먼저 테이블에 모든 데이터를 삽입 할 수 있습니다 다음이 양식과 같은 테이블을 업데이트 할 수 있다고 생각합니다.

// 나는 당신에게 도움이된다.

+0

먼저 열에 날짜를 추가하고이 form.i와 같은 테이블의 날짜를 표시 할 수 있다고 생각하면 도움이 될 것입니다. – user8842732