I am using SSIS 2008 to execute multiple stored procedures in parallel in control flow.
Each SP is supposed to ultimately update 1 row in a table.
The point to note is that each SP has a defined responsibility to update specific columns only.
It is guaranteed that the different SPs will not update each other’s columns. So the columns to be updated are divided between the various SPs, but as per design, each SP is supposed to work on the same row ultimately.
At the moment some of my SPs error out due to deadlock. I am guessing this may be because of the lock on that row by other SPs?
How can i work this out?
You have to admit, this seems like a highly unusual thing to do. I wonder if it wouldn’t be better to update separate tables, and then have a single update statement at the end that would join the individual tables to the final one? (i.e.
update a set a.[1] = ... from a inner join b inner join cetc.).But, if you want to continue down this path, then just set READ UNCOMMITTED from within each of your stored procedures. That is the best bet.