I tested this with the following query:
Begin tran A
update TL_CST_Account set AccountTitle = 'Shamshad-windows' where AccountId = 10001000010021
The idea is, if we are running an update on a table for a particular row in a transaction scope then, it should not lock whole table for other users to run select, update or delete query. If the above row is not committed, I can't run select * from Table with no where clause.
but if i run select * from table where accountId = "some other account", it works ...
select * from TL_CST_Account where accountId = 10001000010017 -- this runs successfully because I am selecting other account from same table
select * from TL_CST_Account where accountId = 10001000010021-- this won't run until i commit update query
select * from TL_CST_Account -- this won't run
select * from TL_CST_Account where accounttitle like '%shamshad%' -- this won't run until i commit update query
Generally, it should not lock whole table only the row that is under transaction scope.
Shamshad