none
Copiar dados de entre duas tabelas RRS feed

  • Pergunta

  • ae galera

    preciso de passar os dados de uma tabela_A (na instancia1) para uma tabela_B (na instancia2).

    O que me preocupa é que na tabela_A os datatype são todos nvarchar e na tabela_B os campos já estão com os datatype correctos.

    Como faço essa transferência de dados?

    Ao fazer essa transferência tenho que converter os dados coluna a coluna né?

    valeu

    quinta-feira, 10 de janeiro de 2013 14:02

Respostas

  • - Sim, o campo é a coluna.

    - Sim, terá que fazer um comando CAST para cada coluna.

    - Como a instancia não está no mesmo servidor você terá que criar um LinkedServer, e então vc fará o FROM da seguinte forma:

    FROM NomedoLinkedServer.NomedoDatabase.NomedoSchema.Tabela

    Esse link pode te ajudar: CREATE LinkedServer


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 10 de janeiro de 2013 15:42
  • Sim, é possível.

    O que vc pode fazer também é utilizar o Integration Services (SSIS), se tiver a possibilidade de utilizar esta ferramenta.


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta Ricardo Russo terça-feira, 15 de janeiro de 2013 11:53
    sexta-feira, 11 de janeiro de 2013 10:48

Todas as Respostas

  • Jonas,

    Você pode fazer assim:

    USE Instancia1
    GO
    
    INSERT INTO tabela_A
    SELECT CAST(<Campo> AS <DataType Correto>)
    FROM Instancia2.dbo.tabela_B

    Sim, terá que fazer os converts das colunas.


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.


    • Editado Fb_Dev quinta-feira, 10 de janeiro de 2013 15:31
    quinta-feira, 10 de janeiro de 2013 15:30
  • O campo é a coluna, correcto? Faço um cast para cada coluna?!

    Nesta parte  

    FROM Instancia2.dbo.tabela_B

    o nome da instancia é modelosdebase. A instancia não está no mesmo servidor. tenho que fazer na mesma 

    "From modelosdebase.dbo.tabelaB"

    valeu


    • Editado Jonas.8 quinta-feira, 10 de janeiro de 2013 15:35
    quinta-feira, 10 de janeiro de 2013 15:32
  • - Sim, o campo é a coluna.

    - Sim, terá que fazer um comando CAST para cada coluna.

    - Como a instancia não está no mesmo servidor você terá que criar um LinkedServer, e então vc fará o FROM da seguinte forma:

    FROM NomedoLinkedServer.NomedoDatabase.NomedoSchema.Tabela

    Esse link pode te ajudar: CREATE LinkedServer


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 10 de janeiro de 2013 15:42
  • ae galera

    estava tentando criar um linked server mas não consigo. Esqueci-me que não sou admin da instancia. logo não tenho poderes para criar um.

    Me lembrei de outra solução.

    Na instancia 1 exportar os dados da tabela_A para um excel. E na instancia 2 importar os dados do excel para a tabela_B.

    Isso é possivel?

    Nota: os campos estão todos em nvarchar(50), vao ficar assim nas duas tabelas. Depois crio tabelas correctas dentro da mesma instancia, sempre tenho acesso

    valeu


    • Editado Jonas.8 sexta-feira, 11 de janeiro de 2013 08:42
    sexta-feira, 11 de janeiro de 2013 08:38
  • Sim, é possível.

    O que vc pode fazer também é utilizar o Integration Services (SSIS), se tiver a possibilidade de utilizar esta ferramenta.


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta Ricardo Russo terça-feira, 15 de janeiro de 2013 11:53
    sexta-feira, 11 de janeiro de 2013 10:48