In fairness, here are two special scenarios where a nolock hint may provide utilityġ) Pre-2005 sql server database that needs to run long query against live OLTP database this may be the only wayĢ) Poorly written application that locks records and returns control to the UI and readers are indefinitely blocked. This article shows you how you can still lock the table in SQL Server even you put a WITH (NOLOCK) in your SELECT statement. If there are locks on the table, it may make the query faster, but there is a reason locks were invented in the first place. If there are no write locks on a table, it does not make any difference. It is a common misconception that it always makes queries run faster. No lock not only returns wrong values it returns phantom records and duplicates.
If you are having locking problems, implement versioning and clean up your code. I think this discussion is way over your head.
Even if your code is braindead to business transactions as it sounds like it is, all transactional databases have the potential to do implicit rollbacks in the event of errors or failure. In this part well examine two query-level hints you can provide SQL Server with to specify how you want SQL to handle locking Using NOLOCK politely asks SQL Server to. In Part 1 we discussed what row-locking was, why it was done, and its impact on database performance.
Not sure why you are not wrapping financial transactions in database transactions (as when you transfer funds from one account to another - you don't commit one side of the transaction at-a-time - this is why explicit transactions exist). SQL Server Lock Contention Tamed: The Joys Of NOLOCK and ROWLOCK, Part 2.