title: Understand SQL Read committed & Read uncommitted
body: <p>I am using SQL Server Express 2008 w/ AdventureWorksLT2008 DB to understand the different between Read committed &amp; Read uncommitted.</p>
  
  <p>According to Wikipedia:
  <a href="http://en.wikipedia.org/wiki/Isolation_%28database_systems%29" rel="nofollow noreferrer">http://en.wikipedia.org/wiki/Isolation_%28database_systems%29</a></p>
  
  <blockquote>
    <p>READ COMMITTED</p>
    
    <p>Data records retrieved by a query are
    not prevented from modification by
    some other transactions.</p>
  </blockquote>
  
  <p>Assume there is a table named <strong>SalesLT.Address</strong> and a column <strong>AddressLine2</strong> which all rows has blank value</p>
  
  <p><img src="https://i.stack.imgur.com/bM73o.png" alt="alt text"></p>
  
  <p>Then i run this query :</p>
  
  <pre><code>SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  
  BEGIN TRANSACTION   
      update SalesLT.Address set AddressLine2 = 'new value'   
  
          BEGIN TRANSACTION
              select AddressLine2 from SalesLT.Address 
  
  --Break Here 
  /*      
          COMMIT TRANSACTION
  COMMIT TRANSACTION
  */ 
  </code></pre>
  
  <p>So, you can see the first transaction haven't commited yet, and the second one start to query the data.</p>
  
  <p>It resulting:</p>
  
  <p><img src="https://i.stack.imgur.com/2fFnd.png" alt="alt text"></p>
  
  <p>So why the second transaction can be retrieved the phantom data even the 1st transaction still not committed?</p>