2012-09-07 5 views
0

일치 찾기 위해 임시 테이블과 메인 테이블 비교 : 나는 두 테이블을 비교하여 일치내가 두 테이블 @mtss 테이블이

을 찾을 필요가

@mtss 
([MM],[YYYY],[month_Start],[month_Finish],[ProjectID],[ProjectedBillable],[ProjectedPayable],[ActualBilled],[ActualPaid],[Total_To_Bill],[Total_To_Pay]) 

tbl_Snapshot ([MM],[YYYY],[month_Start],[month_Finish],[ProjectID],[ProjectedBillable],[ProjectedPayable],[ActualBilled],[ActualPaid],[Total_To_Bill],[Total_To_Pay] 
) 

을 경우 tbl_snapshot [MM] 및 [ProjectId] 경기 tbl_snapshot의 레코드를 삭제하고 @mtts의 레코드를 삽입하십시오.

미리 감사드립니다.

답변

0

somethig에 같은 : 당신이 2008 것 때문에

2

DELETE tbl_snapshot 
FROM tbl_snapshot ss 
INNER JOIN @mtss m ON m.MM = ss.MM AND m.ProjectId = ss.ProjectId 

(이것은 오류가있을 수 있습니다,하지만 계속하는 방법을 생각 당신에게 제공한다 그래서 나는이 편집기에 코드를 직접 작성) 데이터는 exis 경우,이 또한 쉽게 다른 경우로 확장 할

;merge into tbl_Snapshot s 
using @mtss m on s.MM = m.MM and s.ProjectId = m.ProjectId 
when matched then update 
set 
    YYYY = m.YYYY, 
    month_Start = m.month_Start 
    /* Other columns as well, not going to type them all out */ 
; 

당신이 처리해야 할 수 있습니다, 당신은 하나의 논리 연산으로 수행하기 위해 MERGE을 사용할 수 있습니다 하나의 테이블에 다른 테이블이 아닌 다른 테이블에 추가 일치 절이 있습니다.


당연히 생각해 보면이 경우 단순한 UPDATE도 사용할 수 있습니다. A DELETE 다음에 INSERT (삭제되고 삽입 된 행이 키와 관련이 있음)은 UPDATE과 같습니다.

+0

+1 ... 더 좋습니다 –

관련 문제