I've been stuck on this for over a day and I want to move on. Why do I keep getting deadlocks when the concurrent batches that are deadlocking should only be contending for one object to begin with (a single row in a single table)? I thought a deadlock happened only when process A has a lock on Obj.1 and wants a lock on Obj.2, and process B has a lock on Obj.2 and wants a lock on Obj.1? Does it have something to do with system tables or indexes? These deadlocks should not be happening.
When I analyze the problem in the Profiler tool, it says that all the "deadlock" events are in reference to the same object ID. That's how I know that the deadlock is happening on a single object.
When I analyze the problem in the Profiler tool, it says that all the "deadlock" events are in reference to the same object ID. That's how I know that the deadlock is happening on a single object.