Ok, now that Gail has taught me how to post. 🙂
The attached file shows the statement level trace for the two deadlocking spids plus the deadlock collision from the errorlog. A deadlock should be a conflict over two resources between two processes. This data shows that deadlock happened over one resource (dbo.order_detail). I would have expected this to block and resolve not deadlock.
I'm getting multiple deadlocks a day on this procedure so it isn't a freak event.
Any thoughts or suggestions would be appreciated.