Ir para conteúdo
Spurio

[Resolvido] Relacionar 2 tabelas de bancos diferentes

Recommended Posts

Bom dia pessoal é possível relacionar duas tabelas de bancos diferentes??

 

Por exemplo em um banco(A) tenho uma tabela Cliente (intCodCliente, vchNomeCliente)

 

e em outro banco( B_ ) tenho uma tabela Compras (intCodCompra, intCodCliente, vchProduto)

 

É possível relacionar as duas tabelas??

 

Precisava fazer uma relatório então só precisava fazer um select!!

 

É possivel isso?? Alguém pode me ajudaa?? Abraço a todos que colaborarem!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

basta informar o nome do banco, schema e tabela, ex.:

 

select * from bancoA.dbo.Cliente Cl
inner join bancoB.dbo.Compras Co on Co.intCodCliente = Cl.intCodCliente
where intCodCliente = 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu deu certo o que eu precisava aki!!

 

Só tirando uma duvida, tem como fazer isso também quando meus bancos de dados estão em maquinas diferentes??

 

Exemplo SERVIDOR A Banco A

SERVIDOR B Banco B

 

eu testei assim e num deu certo exemplo SERVIDOR_A.BANCO_A.dbo.Cliente

 

é possível fazer algo do gênero??

 

Valeu pela ajuda.. se souber se existe e quiser compartilhar mais essa informação ficarei muito grato! Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim é possível, coloque o servidor/instância entre [ ]

select * from [SERVIDOR_A].bancoA.dbo.Cliente Cl
inner join bancoB.dbo.Compras Co on Co.intCodCliente = Cl.intCodCliente
where intCodCliente = 1

 

mas antes terá que adicionar o servidor/instância como linked server, para isso utilize a interface gráfica, no SSMS fica em Server Objects/Linked Servers ou a procedure de sistema sp_addlinkedserver

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, o select funcionou perfeitamente. Mas como faço para referenciar os dois bancos no mysqli_query.

 

Fiz desse jeito mysqli_query($banco1, $banco2, $sql);

 

mas não deu certo.

 

Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, o select funcionou perfeitamente. Mas como faço para referenciar os dois bancos no mysqli_query.

Fiz desse jeito mysqli_query($banco1, $banco2, $sql);

mas não deu certo.

Alguém pode me ajudar?

dependendo oque você estiver querendo fazer não precisa declarar os dois bancos para acessa-los

caso o usuário de um dos bancos tenha permissão para acessar o outro você pode fazer algo do tipo:

$query = mysqli_query($banco1,'SELECT * FROM `banco1`.`tabela1` tab1,`banco2`.`tabela2` tab2 WHERE `tab1`.`tab1_id` = `tab2`.`tab2_id`');

é claro que isso é so um exemplo.

poste um exemplo do que pretende fazer, talvez fique melhor para ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria possível fazer uma SELECT em banco Oracle e usar um banco do Access na cláusula Where?

 

Ou seja, estou fazendo uma consulta em uma tabela no banco da Oracle, porém tenho que cruzar o que retorna com os dados que tenho em uma tabela do banco no Access.

 

É possível?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 22/09/2017 at 10:51, ramostart disse:

Seria possível fazer uma SELECT em banco Oracle e usar um banco do Access na cláusula Where?

 

Ou seja, estou fazendo uma consulta em uma tabela no banco da Oracle, porém tenho que cruzar o que retorna com os dados que tenho em uma tabela do banco no Access.

 

É possível?

 

Sim eh possivel desde que os bancos "se falem", ou seja, por ip, hostname, e por ai vai,,,

Via ODBC:

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 25/09/2017 at 12:58, A.Jr disse:

e como fazer isso?

 

Em 25/09/2017 at 12:58, A.Jr disse:

Sim eh possivel desde que os bancos "se falem", ou seja, por ip, hostname, e por ai vai,,,

Via ODBC:

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria uma conexao via ODBC para o banco de destino

No SQLServer, crie um linkedserver apontando para este ODBC

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para facilmente excluir todos os dados de todas as tabelas de um banco de dados SQL Server, execute a seguinte query resolve o problema:

-- passo 1 desativa a integridade referencial
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
GO

EXEC sp_MSForEachTable '
IF OBJECTPROPERTY(object_id(''?''), ''TableHasForeignRef'') = 1
DELETE FROM ?
else
TRUNCATE TABLE ?
'
GO

--passo 2 reativa a integridade refencial
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
GO

 

-- Passso 3 Reinicia o contador de chave primária de todas as tabelas

-- Caso deseje reiniciar o contador


EXEC sp_MSForEachTable '
IF OBJECTPROPERTY(object_id(''?''), ''TableHasIdentity'') = 1
DBCC CHECKIDENT (''?'', RESEED, 0)
'
GO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.