I've set up a Data Flow Task to sync a flat file with its destination table using a Merge Join with a Left Outer Join as described here (and elsewhere).

enter image description here

Merge Join: enter image description here

Inserting and Updating works fine, however, deleting a record from the flat file does nothing.

I guess it's something with the Conditional Split: delete ISNULL(gid_csv) && !ISNULL(gid)

enter image description here

or the following SQL Command: DELETE FROM dbo.gusers WHERE gid = ?

enter image description here

The OLE DB Source and the three destinations are accessing the same table.

What do I miss?

  • Should I delete my question? It might be helpful to others, however, the tutorials are actually clear about this.
    – wp78de
    May 14, 2019 at 17:33
  • 1
    I would leave it. Self answers are useful as well. There is nothing as frustrating as having a problem, finding the same problem on some discussion site, and the answer being "Never mind - I figured it out myself" May 14, 2019 at 18:28

1 Answer 1


The answer is actually pretty easy:

You have to use a Full Outer Join instead of a Left Outer Join in the Merge Join Task.

The referenced tutorials actually told me to do so, I guess I mixed it up with another tutorial that did not include the merge delete.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.