Jump to content
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!!

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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:

 

Share this post


Link to post
Share on other 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:

 

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.