none
Querie de tabelas em bancos diferentes RRS feed

  • Pergunta

  • Galera,

    Como faço para buscar dados de duas tabelas distintas que estão em banco de dados diferentes, porém na mesma instância?

    Ex.: "select db1.tbl1.nome, db2.tbl2.data FROM db1.tbl1, db2.tbl2 "

    & "WHERE db1.tbl1.ID = db2.tbl2.ID "

    Seria mais ou mesmo isso.

    Desde já agradeço.

    Abraços

    Perrot

    terça-feira, 27 de junho de 2006 20:23

Todas as Respostas

  • Boa tarde, Perrot.

    Mesma instância seria mesmo servidor? Se sim, a query precisa apenas informar a localização das tables na cláusula FROM, seguida de dois pontos.

    SELECT tbl1.nome, tbl2.data
    FROM db1..tbl1 AS tbl1, db2..tbl2 AS tbl2
    WHERE tbl1.ID = tbl2.ID

    Boa sorte aí.

    terça-feira, 27 de junho de 2006 20:56
  • Perrot,

    Veja o exemplo:

    SELECT tbl1.nome, tbl2.data FROM Banco1..table1 tbl1 Inner Join Banco2..tbl2 tbl2
    WHERE tbl1.ID = tbl2.ID

    quarta-feira, 28 de junho de 2006 17:01
  • Gente,

     

    infelizmente eu testei os dois exemplos e não deu certo.

    Sempre retorna erro.

    existe alguma documentação no books on-line referente a minha necessidade?

    Se existir, como faço para achar?  Estou procurando e ñ consigo achar.

    Obrigado a todos q estão me ajudando.

    Abraços.

    segunda-feira, 3 de julho de 2006 14:48
  • qual erro retornou ?

     

    Abs;

    segunda-feira, 3 de julho de 2006 14:52
  • sintaxe incorreta próximo a palavra chave "WHERE"

    Segue meu código:

    "SELECT tbl_Func.Nome, tbl_DOT.IDDOT " _
                        & "FROM BDG..tbl_Func AS tbl_Func INNER JOIN " _
                        & "BDD..tbl_DOT AS tbl_DOT " _
                        & "WHERE tbl_Func.Matricula = tbl_DOT.rMatri"

     

    abs.

    segunda-feira, 3 de julho de 2006 14:58
  • esta com problema nesta linha

     

    & "WHERE tbl_Func.Matricula = tbl_DOT.rMatri"

    proque por

    & "on tbl_Func.Matricula = tbl_DOT.rMatri"

    segunda-feira, 3 de julho de 2006 16:05
  • Marcelo,

    Agora aparece o seguinte erro:

    Nome do objeto 'bdg..tbl_Func' inválido.

     

    Estou conectando na Base via VB6 e ADO.  Será esse o problema?

     

    segunda-feira, 3 de julho de 2006 19:07
  • nao deve ser, essa tabela existe no outro banco ?, o owner e dbo ? se nao for dbo coloque o onwer correto,

     

    select * from banco.nome_owner.tabela

     

    outra coisa veja se este usuario tem direitos na outra base tambem.

     

    Abs.

     

    segunda-feira, 3 de julho de 2006 19:16
  • Marcelo,

    a tabela existe apenas em uma base.  o mesmo usuário tem direitos nas duas bases.

    Não sei mais o q fazer para isso funcionar.

    C vc tiver algum exemplo completo para me enviar, desde a conexão, passando pela query e fechando a conexão, eu ficarei muito grato.  Dessa forma poderei analisar onde estou errando.

    meu email é mperrot@uol.com.br

    Tanks.

    Perrot

    quinta-feira, 6 de julho de 2006 20:20
  •  faz um teste para mim no outro banco pelo query analiser rode esse comando e poste aqui por favor.

     

    sp_help 'nome_tabela'

     

    aBS.

    quinta-feira, 6 de julho de 2006 23:33
  • Não tenho o query analiser.  estou usando msde.  existe outra forma de dar o comando?

    Abs.

    sexta-feira, 7 de julho de 2006 18:55
  • sim pelo osql, digite osql -? vc. vai ver o help dele se tiver duvidas qualquer coisa retorne.

     

    Abs.

    sexta-feira, 7 de julho de 2006 22:14
  • Marcelo,

    Pelo executando o comando pelo osql aparecem várias informações, mas tudo sem formatação.  Vou passar algumas que acho relevante:

    IDDOT

    clustered, unique, primary key located on primary

    IDDOT

    constraint_type

    constraint_name

    delete_action

    update_action status_enabled status_for_replication contraint_Keys

    primary_keys (clustered)

    IDDOT

    (n/a)

    IDDOT

    Nenhuma chave esterna faz referência a essa tabela.

    nenhum modo de exibição com vinculação  de esquema faz referência a essa tabela.

    Era isso q estava escrito.

    espero q possa ajudar. 

    Como faço pra achar no help?

    Abs.

    Perrot

    segunda-feira, 10 de julho de 2006 16:20
  • queria, saber qual o onwer da tabela.

    Abs;

    segunda-feira, 10 de julho de 2006 16:26
  • Eu não havia reparado q tinha mais informações, pelo prompt ñ dá pra ver td.

    Mas o owner é o dbo.

    abs

    segunda-feira, 10 de julho de 2006 16:35
  • veja se nao esta em case sensitive, digite o nome da tabela e o onwer exatamente esta no outro banco.

     

    Abs;

    segunda-feira, 10 de julho de 2006 19:43