Consulta e exclusão de registros MERGE

Eu tenho uma tabela que se parece com:

AccountID, ItemID
1, 100
1, 200
2, 300

Eu tenho um proc que aceita um parâmetro de valor de tabela que atualiza os itens associados a uma conta. Passaremos algo como o seguinte:

AccountID, ItemID
3, 100
3, 200

O proc se parece com:

procedure dbo.MyProc( @Items as dbo.ItemListTVP READONLY )
AS
BEGIN
  MERGE INTO myTable as target
    USING @Items
       on (Items.AccountId = target.AccountId)
       AND (Items.ItemId = target.ItemId)
    WHEN NOT MATCHED BY TARGET THEN
        INSERT (AccountId, ItemId)
        VALUES (Items.AccountId, Items.ItemId)

   ;

END

Com base nos dados passados, espero que ele adicione 2 novos registros à tabela, o que faz.

O que eu quero é ter uma cláusula WHEN NOT MATCHED BY SOURCE que removerá itenspara a conta especificada que não são correspondentes.

Por exemplo, se eu passar

AccountID, ItemID
1, 100
1, 400

Então eu quero excluir o registro com 1, 200; mas deixe TODOS os outros.

Se eu apenas fizer:

WHEN NOT MATCHED BY SOURCE THEN
  DELETE;

em seguida, ele removerá todos os registros das contas não referenciadas (por exemplo, IDs de conta 2 e 3).

Como posso fazer isso?

Obrigado,

questionAnswers(4)

yourAnswerToTheQuestion