Help get this topic noticed by sharing it on Twitter, Facebook, or email.

"UPSERT" not updating; Getting changed records added again.

I'm testing the "UPSERT" operation with two records using this command:
Exec SF_BulkOps 'Upsert:BulkAPI', 'SFDC', 'Territory_managment__c_Load', 'Id'

My two records do not yet exist in the Salesforce Territory_managment__c table.
This seems to work correctly. The two records are loaded (inserted) into the Territory_managment__c table, the Id field gets populated in the "load" table, and the error field says "operation successful".

I then change a few values in the "load" table and execute the "UPSERT" operation again. However, the two records are added again with different "Id" field. I now have four records when I expect just two. The output of the second "UPSERT" is below:
--- Starting SF_BulkOps for Territory_managment__c_Load
08:37:44: Run the DBAmp.exe program.
08:37:44: DBAmp Bulk Operations. V2.16.6 (c) Copyright 2006-2013 LLC
08:37:44: Upserting Salesforce using Territory_managment__c_Load (LEBHQ-SQL411 / Salesforce) .
08:37:44: DBAmp is using the SQL Native Client.
08:37:45: SF_Bulkops will poll every 60 seconds for up to 1200 seconds.
08:37:47: Batch 75130000001OS1EAAW created with 2 rows.
08:37:47: 2 rows read from SQL Table.
08:37:47: 2 rows processed.
08:37:48: Job Complete.
08:37:48: 2 rows read from SQL Table.
08:37:48: 2 rows marked with current status.
--- Ending SF_BulkOps. Operation successful.

Perhaps I don't understand how the "UPSERT" should work?
1 person has
this question