Deadlock occurs when two users have locks on separate objects and each user wants a lock on the other’s object. When this happens, SQL Server ends the deadlock by automatically choosing one and aborting the process, allowing the other process to continue. The aborted transaction is rolled back and an error message is sent to the user of the aborted process. Generally, the transaction that requires the least amount of overhead to rollback is the transaction that is aborted.
From a User perspective Workaround/Solution:
If this DeadLock happens on same transaction, report multiple times then please report it to email@example.com
However, if it is a single occurrence that just happened ...please exit
the transaction, and try it again after a little while, letting other users
who may have a lock on a record you are accessing finish what they are doing...