Maintaining replicated data in a staging-to-warehouse environment
I presume you have substantial data volumes if you have separate staging and data warehouse servers.  From your posting It sounds like your staging server is doing a bit more than just staging the data.  You describe merging data into the fact table on the warehouse server, so I presume that the staging server actually has ETL processing on it as well.

I would not generally have recommended a transform-push approach like this; running ETL processing from the warehouse and pulling from a staging area is generally better.  The merge happens on the warehouse.  If you need to scale out you can replicate the warehouse, and the same operations will happen on the source and targets.

However, I guess you're stuck with the transform-push architecture, so you've got a couple of options:


Use SSIS or another ETL tool to copy the incremental load to a staging table on the warehouse and merge it to the fact tables from there.  This will be fairly efficient and can be done with set operations - i.e. a merge statement or insert and update.
Replicate the staging area into another database on your warehouse server and execute the merge from there after the ETL processing on the staging server has run.  This is probably more fiddly than the first option, and I can't really see any advantages to it.
If your staging and warehouse databases are located on the same database instance then you can create synonyms in the warehouse and merge through the synonyms.  The synonyms prevent a need to hard-code database refererences.