title: Why does my SQL Server column appear to have no default value even though it acts like it does?
body: <p>I have a SQL Server table that has four columns in it, one of which is a datetime column with a default value of <code>getdate()</code>.  I have two copies of this table, one in a development database server over which I have full control, and another in a production database server in which I have few permissions.</p>
  
  <p>Here is how the development table looks:</p>
  
  <p><img src="https://i.stack.imgur.com/Zv8NQ.png" alt="enter image description here"></p>
  
  <p>I've selected the dtInsert column.  Notice that this column has a default value of <code>getdate()</code>.  The production version I have of this table is exactly the same.  When I add a row to this table, the dtInsert cell defaults to <code>getdate()</code> like I'd expect.  When a database administrator generates a script of the production table, it includes the default value constraint.  However, when I view the table design in SQL Server Management Studio 2012, it shows the column as not having a default value.  See here:</p>
  
  <p><img src="https://i.stack.imgur.com/9gluw.png" alt="enter image description here"></p>
  
  <p>When I generate a database diagram, it also shows the dtInsert column as having no default value.  Again, I know from testing that the dtinsert column in my production database server indeed defaults to <code>getdate()</code>.</p>
  
  <p>Is this a bug in SQL Server Management Studio version 2012?  Is there some permission I don't have which brings about this behavior?  Is it something else?  Why does the column appear to have no default value even though it does?</p>