I am attempting to build a reporting platform for our CRM. The design of the system has a separate DB (with the same structure) for each client. I am replicating (transactional) these 50 DBs to the report server but I now want to bring all the data together into one 'reporting' DB. Each table will have a new client id column which will keep the records unique and link to a new client table.
I want the data to be as close to live as possible (hence transactional). I thought of using a big cross database view but something tells me this is not the best way to do this.
I guess I could have triggers on each client DB that updated the reporting DB whenever there is an update, delete or insert. Not sure if SSIS could be used for this. I have only used it for ETL in the past.
So I would like to know what the best practice would be for bringing multiple databases together and keeping the data in synch with the production environment.