You've written a nice database application that allows the user to manipulate data in an SQL Server database. All is good, but the users would also like to see how the data in the database has changed over time. For instance, John wants to know how the customer records changed last week and Jane would like to know how those details were added into her latest sales order.
Technically speaking, keeping such a log inside your application is quite straight forward. If you have a properly architected layered application, you could add logging code into your data access layer (DAL), and then construct a user interface for this log. But, adding such capability to each and every operation and table is often time-consuming work. Wouldn't it be great if the database you use could help you in this common, but often times taxing work?
The article continues at