Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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!!
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
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
Resolvido, obrigado pela ajuda
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?
>
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.
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?>
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:>
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:
Cria uma conexao via ODBC para o banco de destino
No SQLServer, crie um linkedserver apontando para este ODBC
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
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