title: What are the differences in using driver {SQL SERVER} vs Native Client
body: <p>This question is more about the "why". When you specify <code>DRIVER={SQL Server Native Client 11.0}</code> in a connection string, <code>varchar(max)</code> columns are returned blank. This issue seems to have carried on over the years, and some workarounds exist.</p>
  
  <p><a href="https://connect.microsoft.com/SQLServer/feedback/details/419996/sql-native-client-returning-blank-fields-to-excel" rel="nofollow noreferrer">https://connect.microsoft.com/SQLServer/feedback/details/419996/sql-native-client-returning-blank-fields-to-excel</a></p>
  
  <p><a href="https://connect.microsoft.com/SQLServer/feedback/details/467300/problem-with-varchar-max-via-sql-native-client" rel="nofollow noreferrer">https://connect.microsoft.com/SQLServer/feedback/details/467300/problem-with-varchar-max-via-sql-native-client</a></p>
  
  <p>While it seems crazy that these issues still exist, a valid workaround, suggested by:</p>
  
  <p><a href="https://stackoverflow.com/a/33883901/4258124">https://stackoverflow.com/a/33883901/4258124</a></p>
  
  <p>is to change the connection string to use:</p>
  
  <pre><code>DRIVER={SQL Server}...(rest of connection string)
  </code></pre>
  
  <p>instead of:</p>
  
  <pre><code>DRIVER={SQL Server Native Client 11.0} ...(rest of connection string)
  </code></pre>
  
  <p>I've tried this, and it works, but my question is more about "why". If <code>DRIVER={SQL SERVER}</code> is an older driver, how is it able to connect when I pass newer features like MultiSubnetFailover=Yes/True ?</p>
  
  <p>I noticed I have installed (windows, from odbcad32.exe > Drivers) "ODBC Driver 11 for SQL Server" (MSODBCSQL11.DLL dated 2014) and "SQL Server" (SQLSRV32.DLL dated 2010).</p>
  
  <p>In VBA or Python on Windows, does passing <code>{SQL Server}</code> pick the newer of the above two ? Would any features be lost in using <code>{SQL Server}</code> over <code>{SQL Server Native Client 11.0}</code>, and if so, what would they be ? Is there a better workaround ? </p>