Capture Data Change Vs Triggers I am constructing a database that needs to keep track of historical data. It is a Electronic medical system. All data needs to be updated in real time so the user can see what changes happened in the application. 

Would CDC be the way to go or should I just have triggers on the database that pushes the information into a Audit tables
There is no definitive answer here because each solution has its own pros and cons.

CDC


Easier to setup and you don’t need to worry about creating triggers
and storing trigger data
Available only in SQL Server Enterprise edition so price may be an
issue


Triggers


More flexibility to adopt this to your needs (you can audit sql
server users, applications and more…)
More management and planning will be required upfront. You need to design the triggers, figure out how to store history data, how to do
reporting and probably more…


One of these two is enough – you don’t need to implement both. 

If you decide to use triggers I’d recommend you find a third party tool that can generate triggers for you, create reports and such. I know that ApexSQL Audit can do this but note that it’s a premium tool (has a free trial though).