Deadlocks and concurrency

Simply stated, a deadlock occurs when two user processes each have a lock on a separate data page, index page, row, or table and each wants to acquire a lock on the page, row, or table locked by the other process. When this happens, the first process is waiting for the second to release the lock, but the second process will not release it until the lock held by the first process is released.