Plusieurs mise à Jour de la Déclaration de FUSION SQL Server

Version de SQL Server : Microsoft SQL Server 2012 - 11.0.2218.0 (x64)

Je suis l'exception suivante quand j'ai couru cette Requête.
Exception : Une action de type "when MATCHED" ne peut pas apparaître plus d'une fois dans une "mise à JOUR" clause d'une instruction MERGE.

Je sais que l'exception a été plus d'une fois mise à Jour de la déclaration de Merge.
veuillez s'il vous plaît me suggérer que comment j'ai réaliser la Requête SQL suivante logique?

Basé sur Une colonne,
Lors de la correspondance et de la colonne n'est pas nulle alors de mettre à jour une seule colonne différente.
Lors de la correspondance et de la colonne est null alors mettre à jour la plupart des colonnes.
When not Matched puis l'Insérer.

Le SQL Complète est

MERGE TargetTable AS targetT 
USING   SourceTable AS sourceT ON sourceT.Npi = targetT.Npi
WHEN    MATCHED AND IsNull(targetT.SPI, '') <> '' THEN
UPDATE SET targetT.Taxonomy = sourceT.Taxonomy --Update Only One Column
WHEN    MATCHED AND IsNull(targetT.SPI,'')= '' THEN --Update Rest of the Columns
UPDATE SET targetT.state_license_no = sourceT.state_license_no, targetT.NPI = sourceT.NPI, targetT.PrefixName = sourceT.PrefixName,targetT.last_name = sourceT.last_name,targetT.first_name = sourceT.first_name
,MiddleName = sourceT.MiddleName,targetT.SuffixName = sourceT.SuffixName, targetT.address_1 = sourceT.address_1,targetT.address_2 = sourceT.address_2,targetT.City = sourceT.City,targetT.State = sourceT.State
,zip = sourceT.zip,targetT.phone = sourceT.phone,targetT.Fax = sourceT.Fax,targetT.last_modified_date = sourceT.last_modified_date,targetT.Taxonomy = sourceT.Taxonomy           
WHEN    NOT MATCHED BY TARGET --Insert New Row
THEN
INSERT (state_license_no, NPI, prefixname, last_name, first_name, MiddleName, SuffixName, address_1, address_2, City, State, zip, phone, Fax, last_modified_date, Taxonomy, Data_source)
VALUES (sourceT.state_license_no, sourceT.NPI, sourceT.PrefixName, sourceT.last_name, sourceT.first_name, sourceT.MiddleName, sourceT.SuffixName, 
sourceT.address_1, sourceT.address_2, sourceT.City, sourceT.State, sourceT.zip, 
sourceT.phone, sourceT.Fax, sourceT.last_modified_date, sourceT.Taxonomy, sourceT.Data_source);

OriginalL'auteur Sayem | 2014-09-15