Como executar um SELECT em duas bases de dados diferentes ao mesmo tempo #Parte1

Fala DBA, tudo bem? Juntar dados de várias fontes diferentes tem se tornado uma necessidade cada vez mais comum para as empresas. Nesse post vou te ensinar uma forma muito simples de fazer isso e entregar um bom trabalho!


Vamos criar um cenário para exemplificar. Uma rede de escolas do Brasil utiliza o mesmo sistema para cada uma das suas unidades, cada escola da rede tem o seu próprio banco de dados (SQL Server, claro). Para reduzir custos, algo muito comum, algumas dessas unidades compartilham um mesmo servidor de banco de dados, sendo apenas um instância com vários bancos dentro sendo cada banco de uma escola.


No meu exemplo, em uma instância tenho os bancos da escola de Indaiatuba e de Itu.



O diretor da rede de escolas solicita então um relatório contendo a relação de alunos em cada uma das escolas, o comum seria entregar um relatório de cada uma das escolas como na imagem abaixo.

Nesse caso você como DBA pode deixar isso melhor, pensa no diretor recebendo 10, 15 relatórios, não é prático!

Como fazer isso? Você pode retirar o 'use database' e passar a usar o nome da base em questão junto com o nome da tabela como na imagem abaixo. (O resultado será o mesmo que o anterior).


Agora ficou simples não é mesmo? Basta colocar um UNION ALL entre eles e o resultado passa a ser apenas em um result set. Veja como fica simples:

* Criei uma coluna nova para identificar de qual escola é o aluno para ficar mais fácil no relatório.


Para dar uma cara ainda mais profissional você pode criar uma view que dentro dela faz os selects em bases diferentes, no final de tudo basta ler a view e os dados de fontes diferentes serão retornados para uma visualização simples como se no fundo tivesse tudo a mesma origem.


Gostou do post? Compartilha com seus colegas que querem ser um DBA SQL Server!


Nos acompanhe em nossas redes sociais!

Grupo VIP Telegram: DBA On boarding

Youtube(vídeos novos todas as quartas): DBA On boarding

Face & Instagram(conteúdo diário): DBA On boarding


Até a próxima, tchau!

134 visualizações0 comentário