title: Sql server's Constant scan - clarification?
body: <p>I've read <a href="http://www.scarydba.com/2008/07/01/constant-scan-in-execution-plans/" rel="noreferrer"><em>this article about</em></a> Constant scan but still didn't understand when it would be used ( <em>people commented the author that his article still isn't understood</em>): </p>
  
  <p>MSDN : </p>
  
  <blockquote>
    <p>The Constant Scan operator introduces one or more constant rows into a
    query. A Compute Scalar operator is often used to add columns to a row
    produced by a Constant Scan operator.</p>
  </blockquote>
  
  <p>very unclear.</p>
  
  <p>For example : </p>
  
  <p>why does <code>SELECT TOP 1  GETDATE()</code> produces : </p>
  
  <p><img src="https://i.stack.imgur.com/6qCe8.jpg" alt="enter image description here"></p>
  
  <p>While <code>select getdate()</code> produces nothing. ( in execution plan).</p>
  
  <p>I guess it has to do with constant scan. so : </p>
  
  <p><strong>Question :</strong> </p>
  
  <ul>
  <li>What exactly is constant scan </li>
  <li>Why do it needs to SCAN something  if it's a constant  , and</li>
  <li>Why does <code>select top 1 getdate()</code> yield different result than plain <code>select getdate()</code></li>
  </ul>