Using the Read Uncommitted Option

Use the Read Uncommitted option to copy rows from the database whether or not locks are present on them. The program that fetches a row places no locks and it respects none. Read Uncommitted is the only isolation level available to databases that do not have transactions.

This isolation level is most appropriate in queries of static tables whose data is not being modified, because it provides no isolation. With Read Uncommitted, the program might return an uncommitted row that was inserted or modified within a transaction that was subsequently rolled back.

The Uncommitted Read isolation level of SET TRANSACTION does not directly support the LAST COMMITTED feature of the Committed Read isolation level of the SET ISOLATION statement. The LAST COMMITTED feature can reduce the risk of locking conflicts when an application attempts to read a row on which another session holds an exclusive lock while modifying data. When this feature is enabled, the database server returns the most recently committed version of the data, rather than wait for the lock to be released.

This feature takes effect implicitly, however, in all user sessions that use the Read Uncommitted isolation level of the SET TRANSACTION statement, under either of the following circumstances:
  • if the USELASTCOMMITTED configuration parameter is set to 'DIRTY READ' or to 'ALL'
  • if the SET ENVIRONMENT statement set the USELASTCOMMITTED session environment option to 'DIRTY READ' or to 'ALL'.
See the section The LAST COMMITTED Option to Committed Read for more information about the LAST COMMITTED feature and its restrictions.