For KEY locks, the resource value in sp_lock is the hashed value of the locked key.
The first bytes 2 are the lower bytes 2 key, the remaining bytes are hash or value.
Use this query to find out locked rows:
SELECT * FROM mytable WHERE %%LOCKRES%% = '{0000ABCDEFAB}'
where string is the value of the blocked resource from sp_lock .
If this query returns two rows, you encounter a hash collision, which is very improbable, but possible, with a probability increases with the size of the table (due to the birth paradox).
source share