2013-06-19 102 views
0

我正在使用表值參數來合併我的記錄,但最重要的是,我還需要從我的數據庫中刪除不存在於我的TVP表中的記錄。任何人都可以請協助。謝謝。SQL Server 2008 + TVP合併

另一種方法是先刪除所有記錄而不是繼續插入,但記錄的數量可能高達數千,因此性能可能是一個問題。

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

還有第三個「何時」的情況下,你可以使用爲:

WHEN NOT MATCHED BY SOURCE 

我用它來記錄標誌失蹤了這一點。