Although Solution 1 works for you as you are using SQLServer2005. But if you are planning for SQL Server 2008 then you should check Change Tracking in SQL Server 2008
]. it will store high level of change history. you do not have to write anymore code.
Anyway hope you will create triggers for your tables.