title: Where does a clustered index store row data for keys on intermediate levels?
body: <p>Please help me in understanding what I feel is inconsistency between two facts:</p>
  
  <ol>
  <li>SQL Server stores data in a B-Tree structure</li>
  <li>Only leaf nodes contain actual table data, while intermediate ones store only keys and pointers to children</li>
  </ol>
  
  <p>In general, a B-Tree has the property that, for a given key in the intermediate node, all keys in the left subtree are smaller than it and in the right subtree greater, such that:</p>
  
  <p><a href="https://i.stack.imgur.com/dTWUn.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/dTWUn.png" alt="Example B-Tree"></a></p>
  
  <p>In the above example (<a href="https://commons.wikimedia.org/wiki/File:B-tree.svg" rel="nofollow noreferrer">image credit</a>), clearly a row with the ID = 7 was inserted into the table. But where is the row data (non-key columns) for that ID if it can't be in the root node of the example and there is no 7 in the leaf nodes?</p>
  
  <p>Clearly, there's more to it than "indexes are B-Trees" and I would appreciate some insight.</p>