title: SQL Server TSQL conventions/patterns on SET, WITH and ENABLE
body: <p>After years of using TSQL, I still cannot figure out when to use <code>SET</code>, <code>WITH</code> or <code>ENABLE</code>.</p>
  
  <p>When you read TSQL statement like, </p>
  
  <pre><code>ALTER TABLE Person.Person
  ENABLE CHANGE_TRACKING 
  WITH (TRACK_COLUMNS_UPDATED = ON);
  </code></pre>
  
  <p>It looks more intuitive and readable if it was written like (invalid query below), </p>
  
  <pre><code>ALTER TABLE Person.Person
  SET CHANGE_TRACKING = ON,
      TRACK_COLUMNS_UPDATED = ON
  </code></pre>
  
  <p>I am always getting confused between when to use <code>SET</code>, <code>ENABLE</code>, or <code>WITH</code> options</p>
  
  <p>When are those options being used in TSQL?
  Is TSQL just being inconsistent?</p>