Can someone explain how Marketing Cloud locks data in Data Extensions during certain routine operations?

Case A: An email begins sending and midway through, a SQL Query gets ran which overwrites the data extension. In my experience, this causes the mailing to fail, which tells me that whatever lock the send has (if any) is overridden by the SQL SELECT query.

Case B: An email begins sending and midway through, a Data Filter is applied which will similarly overwrite the data extension. Does this function the same was as a SQL Query with Overwrite, or will it wait for the send to complete?

What I'm trying to avoid is a situation where a user is trying to send to one of our sendable Data Extensions while they're being updated. I'm sure I can train users to send outside of update times but I'd prefer to have these foolproof and easy to use, so I'd also prefer not to rely on automations in order to send. Is that something that's possible?

  • Regarding both cases, the email is just looking for data. Emails won't stop whether there is a query or filter running, which changes the data within the DE. You would have to re-think your data architecture to avoid having anyone sending to something that that is being overwritten.
    – Harley
    Sep 17, 2018 at 19:14

2 Answers 2


Marketing Cloud does not enforce referential integrity, so you can perform simultaneous operations on the same Data Extension, and suffer consequences.

You're right, this can result in contention issues but the only solution would be to ensure that Automation Activities do not run at the same time that emails (which use the same data).

The same applies for Automation Activities; you need to ensure that Query Activities in an Automation are not executed concurrently against the same Data Extension. Contention issues will arise if two or more processes attempt to perform simultaneous operations on the same Data Extension.


I'm not sure how Marketing cloud handles locking of Data Extensions in regards to your specific cases, but I had a similar question for Salesforce Support not long ago and this was their answer:

When a query is running and writing to a data extension it locks it automatically. When a second query runs that wants to write to the same data extension it goes into a wait state and can timeout after awhile.

Hope this helps

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .