locked
QUERY para copiar tabela de um Banco de Dados para outro RRS feed

  • Pergunta

  • Em um POST anterior citei que temos 2 BD´s SQL Server idênticos, com a mesma estrutura de Banco e Tabelas, cada um hospedado em um servidor diferente com IP diferente, e que usamos assim pois um está em ambiente de testes e outro em ambiente de produção.

    Existe uma tabela chamada Agenda no BD Testes cujos dados cadastrados quero copiar para a tabela Agenda em BD produção.

    Estou utilizando agora um recurso citado por um Desenvolvedor, o SQL Server Import and Export Wizard, para Exportar Dados.

    Estou conectado aos 2 BD´s, ao do ambiente de Testes e ao do ambiente de Produção e como desejo importar apenas os dados da tabela Agenda, o SQL Server Import and Export Wizard me pede uma Query para realizar esta ação.

    Esta situação é nova para mim.

    Minha pergunta é:

    Estando conectado aos 2 BD´s, que Query devo escrever para copiar os dados da tabela AGENDA no ambiente de  testes para a tabela AGENDA no ambiente de Produção?

    Agradeço a ajuda,

    Att,
    Inciaindo em C#
    segunda-feira, 1 de fevereiro de 2010 13:01

Respostas

  • Boa Tarde Januário,

    No SQL Server Import and Export Wizard, após as configuração das conexões, existe uma tela que lhe permite escolher entre:

    - Copy data from one or more tables or views
    - Write a query to specify the data to transfer

    Entendo que no cenário citado, você deva escolher a primeira opção. Uma vez feito isso, não será necessário escrever nenhuma query e sim selecionar o objeto a ser copiado, no seu caso a tabela Agenda.


    Espero ter ajudado.

    []'s


    Jorge Rua http://jtressino.spaces.live.com http://twitter.com/jtressino
    • Sugerido como Resposta Jorge Rua segunda-feira, 1 de fevereiro de 2010 15:57
    • Marcado como Resposta Fernanda Simões segunda-feira, 22 de fevereiro de 2010 14:36
    segunda-feira, 1 de fevereiro de 2010 15:57

Todas as Respostas

  • Olá Januário,
    Um exemplo simples para te ajudar seria:

    SELECT * FROM AGENDA

    De qualquer forma segue um tutorial em português para Transact-SQL, que a linguagem usada para escrever queries.

    http://www.linhadecodigo.com.br/Artigo.aspx?id=165

    Abraço.

    Diego Cardenas.
    segunda-feira, 1 de fevereiro de 2010 14:08
  • Diego,

    Creio que vc não tenha entendido o que perguntei acima.
    Sei o que é uma Query e sei o que é uma consulta.

    O que descrevi acima é que não sei como copiarei os dados da tabela AGENDA (do Banco de Dados TESTE) para a tabela AGENDA (do Banco de Dados PRODUÇÂO).

    Como devo escrever esta Query?

    É isto que desejo saber.

    Alguém poderia me informar?

    Agradeço a atenção.
    Inciaindo em C#
    segunda-feira, 1 de fevereiro de 2010 15:09
  • Boa Tarde Januário,

    No SQL Server Import and Export Wizard, após as configuração das conexões, existe uma tela que lhe permite escolher entre:

    - Copy data from one or more tables or views
    - Write a query to specify the data to transfer

    Entendo que no cenário citado, você deva escolher a primeira opção. Uma vez feito isso, não será necessário escrever nenhuma query e sim selecionar o objeto a ser copiado, no seu caso a tabela Agenda.


    Espero ter ajudado.

    []'s


    Jorge Rua http://jtressino.spaces.live.com http://twitter.com/jtressino
    • Sugerido como Resposta Jorge Rua segunda-feira, 1 de fevereiro de 2010 15:57
    • Marcado como Resposta Fernanda Simões segunda-feira, 22 de fevereiro de 2010 14:36
    segunda-feira, 1 de fevereiro de 2010 15:57
  • Eu normalmente utilizo um insert com resultado de select, como o exemplo abaixo.

    insert into [ServerProd].[Base].[dbo].[tabela]
    Select * from [ServerHom].[Base].[dbo].[tabela]

    Se sua tabela tiver algum campo IDENTITY_INSERT será preciso desativar para conseguir fazer o insert.

    Set IDENTITY_INSERT tabela ON

    Após o insert volte ela para OFF

    Set IDENTITY_INSERT tabela OFF

    Se mesmo assim apresentar mensagens de erro, ao invés de fazer o insert conforme mensionei efetue informando os campos:

    insert int [ServerProd].[Base].[dbo].[tabela] (campo1, campo2)
    Select campo1, campo2 from [ServerHom].[Base].[dbo].[tabela]

    • Editado Tiago_Barros terça-feira, 11 de maio de 2021 18:05
    terça-feira, 11 de maio de 2021 17:56