As mentioned earlier in this chapter, the isolation behavior of a transaction can be tweaked to your application’s needs. This is generally done by setting the isolation level of a transaction. Put simply, isolation levels determine how concurrent transactions behave. Do they block each other? Do they let each other step over themselves? Or do they present a snapshot of a previous stable state of data in the event of an overstepped condition?
You might find a slight mismatch between the isolation levels defined in ADO.NET compared with the isolation levels in SQL Server 2008 because ADO.NET was not written exclusively for SQL Server. We’ll begin by looking at the isolation-level support in SQL Server 2008.