2013-06-19 2 views
0

테이블 값 매개 변수를 사용하여 레코드를 병합하지만 그 위에 또한 내 TVP 테이블에없는 레코드를 데이터베이스에서 삭제해야합니다. 아무도 친절하게 도와 줄 수 없습니다. 감사.SQL Server 2008 + TVP 병합

다른 방법으로 삽입을 진행하는 것보다 먼저 모든 레코드를 삭제하는 것이지만 레코드의 수는 수천까지 될 수 있으므로 성능이 우려 될 수 있습니다.

WHEN NOT MATCHED BY SOURCE 

내가 사용하는 플래그 기록에 실종이 :

MERGE [Customer_Address] ca --[AS TARGET] 
    USING @TvpCustomer_Address tca --[AS SOURCE] 
    ON (ca.CustomerId = tca.CustomerId) 
    AND(ca.[Address] = tca.[Address]) 

    WHEN NOT MATCHED THEN 
    INSERT (CustomerId, [Address]) Values(tca.CustomerId, tca.[Address]); 

    WHEN MATCHED THEN 
    -- Update... 

답변

0

은 당신이 사용할 수있는 경우를 '언제'세 번째가있다.