Primeiramente, os recursos de replicação do SQL Server podem ser configurados entre diferentes bancos de dados na mesma instância.
Configurar e administrar a replicação do SQL Server pode ser mais um esforço do que você deseja assumir. Existem muitas decisões a serem tomadas (o que tipo de replicação? Todas as colunas ou apenas algumas delas? Todas as linhas ou apenas algumas delas? Eu quero indexar as tabelas de destino? Alguns tipos de replicação requerem alterações no modelo de dados subjacente.Se você não controla o código-fonte dos aplicativos, está alterando o modelo de dados, mesmo possível? Etc, etc.), a replicação pode quebrar e pode não ser notada por um enquanto, arquivos de log podem crescer inesperadamente.
Com os gatilhos, você precisa manter o código do gatilho no caso de as tabelas subjacentes serem alteradas. O que acontece se o gatilho parar de funcionar? Como você sincroniza novamente as tabelas? Quanto tempo isso leva? Etc, etc.
Como mencionado nos comentários, uma alternativa à replicação é o uso de visualizações. Potencialmente, isso significa manter o código no caso de as tabelas base (T1, T2, T3) mudarem por qualquer motivo. Por causa disso, as views seriam minha segunda sugestão.
Minha primeira sugestão seria usar o recurso "sinônimos" para simplesmente se referir às tabelas originais. Se você usar visões ou sinônimos, os dados serão armazenados somente em um local (DB1), portanto, não há preocupação em sincronizar as alterações entre as cópias dos dados.
O possível negativo aqui (para visões ou sinônimos) é que o DB2 não conterá os dados T1, portanto, um backup e restauração do DB2 (para um servidor test ou dev) também precisariam de um backup e restauração do DB1. / p>