none
Atualizar coluna com informações de outro banco de dados RRS feed

  • Pergunta

  • Pessoal, bom dia.

    Estou precisando fazer uma consulta para atualizar várias linhas de uma coluna com informação proveniente de outro banco de dados. Minha estrutura é a seguinte:

    • Banco de dados 1 [Origem]
    • Tabela dbo.Material
    • Coluna cod_NCM

    • Banco de dados 2 [Destino]
    • Tabela fiscal.material
    • Coluna cod_NCM

    Nessas tabelas, possuo vários materiais e um identificador para eles chamado material_id. Tentei fazer um Merge, mas não domino esse mecanismo e também não consegui fazer um update, porque as tabelas fazem parte de esquemas diferentes.

    Alguma dica?

    Obrigado.

    terça-feira, 21 de junho de 2016 12:26

Respostas

Todas as Respostas

  • Bom dia Marcelo,

    Qualquer coisa posta o código do seu UPDATE ou MERGE para analisarmos, mas um exemplo simples do UPDATE que teria que montar ficaria mais ou menos assim:

    UPDATE SERVIDOR.BASE.SCHEMA.TABELA SET SERVIDOR.BASE.SCHEMA.TABELA.COD_NCM = SERVIDOR2.BASE2.SCHEMA2.TABELA2.COD_NCM
    FROM SERVIDOR.BASE.SCHEMA.TABELA INNER JOIN SERVIDOR2.BASE2.SCHEMA2.TABELA2 ON SERVIDOR.BASE.SCHEMA.TABELA.MATERIAL_ID = SERVIDOR2.BASE2.SCHEMA2.TABELA2.MATERIAL_ID
    WHERE SERVIDOR.BASE.SCHEMA.TABELA.MATERIAL_ID = 10

    Lembrando que ser for outro servidor, precisa do LinckedServer.

    Att

    Reginaldo C. Silva

    terça-feira, 21 de junho de 2016 14:33
  • Deleted
    • Sugerido como Resposta Mariana Del Nero quarta-feira, 22 de junho de 2016 20:47
    terça-feira, 21 de junho de 2016 15:04
  • José, desculpa a demora.

    Testei hoje e consegui utilizando o seu como base, fazendo pequena alteração.

    update DESTINO
    set DESTINO.cod_ncm = (select ORIGEM.cod_ncm where DESTINO.material_id = ORIGEM.material_id)
    from DB1.dbo.material as ORIGEM
    inner join DB2.fiscal.material as DESTINO on ORIGEM.material_id = DESTINO.material_id

    Obrigado a todos.

    quarta-feira, 22 de junho de 2016 18:54