In SQL Server, each transaction has an implicit or explicit transaction level. Explicit if called with BEGIN/COMMIT/ROLLBACK TRANSACTION , implicit if nothing happened.
Take a snapshot before running the update request. Otherwise, SQL Server will not be able to prepare the modified rows in tempdb, and the Update request is still blocked.
Another way without creating snapshot isolation is to use SELECT <columns> FROM <table> WITH (NOLOCK) , which allows SQL Server to retrieve rows no matter what (for example, READ_UNCOMMITED). Since this is a hint, it changes the isolation level even with your settings. It may work if you are not worried about the state of the row being requested, but care should be taken when evaluating the received data.
source share