title: How do I find out the _exact_ error from SQL Server
body: <p>I have an application in .NET. It updates a SQL Server database.<br>
  An exception is thrown. How do I know <em>exactly</em> what happened?</p>
  
  <p>Understanding that it, for instance, was a foreign key violation isn't any problem.  But <em>which</em> foreign key is.</p>
  
  <hr>
  
  <p>The explaining text (exception.Message) is enough for me, as a human, since it holds (semi-) free text.  But a computer shouldn't have to lower itself to human chitter chatter.  </p>
  
  <p>Especially since the error message might change between SQL Server versions and absolutely between installed languages.  "...foreign key exception FK_Cust..." or "...främmande nyckel undantag FK_Cust..."</p>
  
  <p>There is a number (a remains from the COM heydays?) that maps to a certain class of error but I haven't found the very foreign key, or index, or constraint that failed in a computer understandable way.</p>