UserA is updating a record into db, but at the same time UserB wants to check the old recored from the same db. If a userA updated a record, then how can a userB can see the old record, because the old record is overwrited in the db.
You can set your translation isolation to allow dirty reads, but I don't think this is your question.
If you want both the old and new data to be available, you need to manage that yourself, such as inserting a new value then anly allowing A to see the latest value but allowing B to see all historical values.
I think he is looking for 'read-committed'. If you use read commited concurrncy level. B will see old value untill A commit the transaction. If you want B to see old values even after A commits then you need to manage yourself.
If the transaction that updated the record has committed, then your only option is to implement some sort of history table mechanism in your model. By this you use a trigger to copy data from your main table to a history table before any update is made. Is this the sort of thing you are looking for?