IsolationLevel

Controls the level of locking and records access to ODBC-accessible tables.

Syntax

IsolationLevel=[ur | cr | rr | sr | vr | no]

Default

no

Values

See these descriptions of isolation levels in the Microsoft ODBC 3.5 Programmer’s Reference and SDK Guide:
  • Dirty read – transaction 1 changes a row. Transaction 2 reads the changed row before transaction 1 commits the change. If transaction 1 rolls back the change, transaction 2 reads a row that is considered to have never existed.

  • Nonrepeatable read – transaction 1 reads a row. Transaction 2 updates or deletes that row and commits the change. If transaction 1 attempts to reread the row, it receives different row values or discovers that the row has been deleted.

  • Phantom – transaction 1 reads a set of rows that satisfy some search criteria. Transaction 2 inserts a row that matches the search criteria. If transaction 1 reexecutes the statement to read the rows, it receives a different set of rows.

Acceptable values are:
  • ur (uncommitted read) – dirty reads, nonrepeatable reads, and phantoms are possible.

  • cr (committed read) – dirty reads are not possible. Nonrepeatable reads and phantoms are possible.

  • rr (repeatable read) – dirty reads and nonrepeatable reads are not possible. Phantoms are possible.

  • sr (serializable) – transactions can be serialized. Dirty reads, nonrepeatable reads, and phantoms are not possible. This is usually implemented by using locking protocols that reduce concurrency.

  • vr (versioning) – transactions can be serialized, but this value provides higher concurrency. Dirty reads are not possible. This is usually implemented by using nonlocking protocols, such as record versioning.

  • no (none) – uses the ODBC driver default level.