title: How do I add a column to large sql server table
body: <p>I have a SQL Server table in production that has millions of rows, and it turns out that I need to add a column to it. Or, to be more accurate, I need to add a field to the entity that the table represents.</p>
  
  <p>Syntactically this isn't a problem, and if the table didn't have so many rows and wasn't in production, this would be easy. </p>
  
  <p>Really what I'm after is the course of action. There are plenty of websites out there with extremely large tables, and they must add fields from time to time. How do they do it without substantial downtime? </p>
  
  <p>One thing I should add, I did not want the column to allow nulls, which would mean that I'd need to have a default value. </p>
  
  <p>So I either need to figure out how to add a column with a default value in a timely manner, or I need to figure out a way to update the column at a later time and then set the column to not allow nulls.</p>