none
Insert Into Bancos diferentes

    Question

  • Pessoal,

    Estou desenvolvendo um trabalho no qual preciso buscar informações no banco1 e inserir no banco2, porém não consegui fazer a string de conexão para tal.

    A idéia é fazer um Insert Into [TblBanco2] from Select * from [TblBanco1]

    Alguém pode me ajudar com a sintaxe?

    Obrigado
    Bruno Silva Leite Office Developer officevb.blogspot.com
    Monday, October 04, 2010 10:48 PM

Answers

  • Bom dia 

    O correto seria se fosse os bancos de dados no mesmo lugar:

    INSERT INTO tabela_a_receber ( campo1, campo2,campo3)

    SELECT * FROM tabela_a_buscar 

    --SEM VALUES neste  caso, mas tem que saber que as tabelas tem que ter os mesmos tipo de dados(campos).

    Se for no caso usando LINKED SERVER :

    INSERT INTO tabela_a_receber ( campo1, campo2,campo3)

    SELECT *  FROM NOME_LINKED_SERVER.NOME_BANCO_DADOS.dbo.NOME_TABELA AS tabela_a_buscar 


    att. Carlos Fernando Se útil, classifique!!!
    Tuesday, October 05, 2010 4:19 PM

All replies

  • Insert Into NomeDoBancoDestino.dbo.Tabela 

        Select * from NomeDoBancoOrigem.dbo.Tabela



    Mais ou menos isso... ou tem um 'VALUES' no meio, não lembro bem... mas funciona
    Monday, October 04, 2010 10:55 PM
  • Caso os bancos estejam em locais diferentes, você terá que utilizar linked server.

    []´s


    Fernando Orbite
    Blog
    ValeLigado Consultoria
    Monday, October 04, 2010 11:55 PM
  • Bom dia 

    O correto seria se fosse os bancos de dados no mesmo lugar:

    INSERT INTO tabela_a_receber ( campo1, campo2,campo3)

    SELECT * FROM tabela_a_buscar 

    --SEM VALUES neste  caso, mas tem que saber que as tabelas tem que ter os mesmos tipo de dados(campos).

    Se for no caso usando LINKED SERVER :

    INSERT INTO tabela_a_receber ( campo1, campo2,campo3)

    SELECT *  FROM NOME_LINKED_SERVER.NOME_BANCO_DADOS.dbo.NOME_TABELA AS tabela_a_buscar 


    att. Carlos Fernando Se útil, classifique!!!
    Tuesday, October 05, 2010 4:19 PM
  • Pessoal, obrigado pela ajuda

    A solução do linked server permitiu que eu avançasse com o trabalho, porém não consegui concluir a tarefa ainda. Como as bases estão em servidores diferentes, em partes eu resolvi.

    Com o linked server eu teria que usar o

    insert into [tbl1] from OPENQUERY(NOME_LKD,'select * from [tbl] Where Campo=' + @P1 +')

    Porém o OPENQUERY não permite o uso de paramêtros, tentei de várias formas e não consegui resolver

    tentei também utilizando a seguinte sintaxe

    set @sql='select * from [tbl] where campo=' + @P1 +'

    exec @ sql at [./NOME_LKD]

    Solicitei a criação ao DBA da strored procedure na base que não tenho permissão de criação, porém eta solução, além de demorada não permite que eu altere facilmente a stored.

    Alguém tem alguma idéia de como posso resolver esta questão? realizar uma consulta parametrizada em outro server através do linked server, e com o resultado desta consulta inserir em outro servidor ?

    Obrigadp

     


    Bruno Silva Leite Office Developer officevb.blogspot.com
    Wednesday, October 06, 2010 1:12 AM
  • Caso seja em servidores diferentes...

    E se fizesse uma operação com DTS ? Import, Export Data

    acho que isso tem em todas as versões do Sql Server né?

     

    um servidor pode se conectar a outro para migração de dados

    Wednesday, October 06, 2010 6:28 PM
  • Bom pelo que entendi você esta tentando migrar alguns dados de um instancia do sql server que se localiza em um servidor para outra intancia que se localiza em outro servidor.

    Se for isso, utilize o que Julio C. informa, Utilize DTS ou  faça o select que vc deseja passando parametro pela clausula WHERE em seguida salve esta consulta em CSV, importe a mesma para uma planilha de excel, apos isso importar a planilha com o conteudo do CSV para a Instancia desejada.

     

     

    Qualquer Duvida a disposição. 


    Todos tem direito ao sucesso, basta ser determinado no que tanto deseja nesta vida!
    Friday, October 08, 2010 7:59 PM
  • Feheze,

    concordo que seria uma pratica interssante exportar antes para o excel

     

    mas, no caso de ele ter acesso aos dois servidores simultaneamente, algo impede de que ele extraia os dados diretamente da origem ao destino?

     

     

    []s

    Saturday, October 09, 2010 2:49 PM
  • Não ele só iria ter mais um trabalho, de extrair para excel duas vezes pois existe duas bases cada uma em seu servidor, se o mesmo estiver um linked server configurado seria mais facil fazer um insert com select ao desejado!
    Todos tem direito ao sucesso, basta ser determinado no que tanto deseja nesta vida!
    Wednesday, October 13, 2010 11:58 AM
  • ah sim, nesse caso sim

     

    Certo

     

    []s

    Friday, October 15, 2010 9:02 PM