title: What are the differences between CHECKSUM() and BINARY_CHECKSUM() and when/what are the appropriate usage scenarios?
body: <p>Again MSDN does not really explain in plain English the exact difference, or the information for when to choose one over the other.</p>
  
  <p><a href="http://msdn.microsoft.com/en-us/library/ms189788.aspx" rel="noreferrer">CHECKSUM</a></p>
  
  <blockquote>
    <p>Returns the checksum value computed over a row of a table, or over a list of expressions. CHECKSUM is intended for use in building hash indexes.</p>
  </blockquote>
  
  <p><a href="http://msdn.microsoft.com/en-us/library/ms173784.aspx" rel="noreferrer">BINARY_CHECKSUM</a></p>
  
  <blockquote>
    <p>Returns the binary checksum value computed over a row of a table or over a list of expressions. BINARY_CHECKSUM can be used to detect changes to a row of a table.</p>
  </blockquote>
  
  <p>It does hint that binary checksum should be used to detect row changes, but not why.</p>