9 The SQL Server Data Provider : Isolation Levels

Isolation Levels
Microsoft SQL Server supports the following isolation levels:
Microsoft SQL Server 2005 and higher support the following additional isolation levels:
The SQL Server data provider defines the .NET Framework isolation level through the BeginTransaction(IsolationLevel) method of the SQLServerConnection class (see “SQLServerConnection Class”).
The initial default is ReadCommitted.
Refer to the DataDirect Connect Series for ADO.NET Reference for more information about isolation levels.
Snapshot Isolation Level
Snapshot isolation reduces blocking by storing a version of data that one application can read while another is modifying the same data. Snapshot isolation provides transaction-level read consistency and an optimistic approach to data modifications by not acquiring locks on data until data is to be modified.
This feature, which was introduced in Microsoft SQL Server 2005, can be useful if you want to consistently return the same result set even if another transaction has changed the data and 1) your application executes many read operations or 2) your application has long running transactions that could potentially block users from reading data. This feature has the potential to eliminate data.
Setting the isolation level to Snapshot changes the behavior of the Serializable isolation level to use the Snapshot isolation level. This allows an application to use the Snapshot isolation level with no or minimum code changes.
On the server, Microsoft SQL Server provides a runtime option, READ_COMMITED_SNAPSHOT. To configure Snapshot Isolation for connections, you must have your Microsoft SQL Server database configured for Snapshot Isolation, and your application must have the transaction isolation level set to Serializable.