title: History tables pros, cons and gotchas - using triggers, sproc or at application level
body: <p>I am currently playing around with the idea of having history tables for some of my tables in my database. Basically I have the main table and a copy of that table with a modified date and an action column to store what action was preformed e.g., Update, Delete and Insert.</p>
  <p>So far I can think of three different places that you can do the history table work.</p>
  <ul>
  <li>Triggers on the main table for update, insert and delete. (Database)</li>
  <li>Stored procedures. (Database)</li>
  <li>Application layer. (Application)</li>
  </ul>
  <p>My main question is; what are the pros, cons and gotchas of doing the work in each of these layers?</p>
  <p>One advantage I can think of by using the triggers way is that integrity is always maintained no matter what is implemented on top of the database.</p>