none
Copiar dados entre tabelas de diferentes dados? RRS feed

  • Pergunta

  • Pessoal

    tenho dois banco de dados.

    Um no pc 1 e outro no pc dois

    Cada uma tem a tabela dados

    Preciso de copiar os dados da tabela dados do pc1 para a tabela dados do pc2. Qual é a sintaxe?

    OBrigado


    Visual Basic 2008 Express Edition SQL Server Management Studio

    quarta-feira, 2 de maio de 2012 09:43

Respostas

Todas as Respostas

  • Jonas, Bom dia!!

    Neste caso você poderia criar um Linked Server e depois fazer um insert com select.

    Segue um exemplo abaixo que fiz em minha maquina, neste caso você teria que configurar o linked server de acordo com as configurações de sua maquina, há também um link para que você possa ler mais sobre Linked Server e entender o que significa cada uma das configurações.

    -- Adicionando Linked Server
    EXEC sp_addlinkedserver
       @server=N'SRV2012',                    -- Nome do Computador remoto
       @srvproduct=N'',                       -- Não precisa preencher
       @provider=N'SQLNCLI',                  -- SQL Server Driver
       @datasrc=N'SQL2012\SQLEXPRESS2012';    -- Servidor / Instancia que precisa ser acessada
    
    /*
     Link para mais detalhes de Linked Server
     
     http://msdn.microsoft.com/pt-br/library/ms190479.aspx
    */
    
    ---------------------------------------------------------------------
    
    -- Select através do linked server
    SELECT *
       FROM SRV2012.SQL2012.dbo.Itens;
    GO
    /*
    Onde:
    SRV2012       Nome do linked server que criei.
    SQL2012		  Nome do banco no servidor lincado.
    dbo			  Nome do schema. 
    Itens		  Nome da tabela que preciso.
    */
    
    ---------------------------------------------------------------------
    
    /*
    	Se os passos acima retornarem corretamente.
    	Abaixo um exemplo de Insert com Select
    */
    
    -- Insert com Select
    INSERT INTO MINHATABELALOCAL	
    	SELECT *
       FROM SQL2012REMOTO.SQL2012.dbo.Itens;
    GO
    


    Adriano Nascimento

    quarta-feira, 2 de maio de 2012 12:40
  • Bom dia Jonas

    Se essa tarefa for executada apenas 1 vez, voce pode usar o SQL Server Import e Export Wizard. Para acessar voce deve cicar com a direita no seu banco >> Task >> Import Data

    []

    quarta-feira, 2 de maio de 2012 13:02
  • Como é que eu sei a instanciá do meu banco de dados?

    O ideal seria fazer este import a cada 2 minutos.

    Porque a tabela origem vai estar a sofrer alterações a cada minuto que passa. E na tabela destino quero ter a informação mais actualizada possível.

    então o código para import será:

    EXEC sp_addlinkedserver @server=N'SRV2012', -- Nome do Computador remoto @srvproduct=N'', -- Não precisa preencher @provider=N'SQLNCLI', -- SQL Server Driver @datasrc=N'SQL2012\SQLEXPRESS2012'; -- Servidor / Instancia que precisa ser acessada

    SELECT *
       FROM SRV2012.SQL2012.dbo.Itens;
    GO

    INSERT INTO MINHATABELALOCAL SELECT * FROM SQL2012REMOTO.SQL2012.dbo.Itens;

    Certo?

    Jose,a sua sugestão nãoserve pois não é para fazer só uma vez. Mas obrigado ;)

    valeu


    Visual Basic 2008 Express Edition SQL Server Management Studio


    quarta-feira, 2 de maio de 2012 13:22
  • Jonas,

    Na verdade o que você precisa fazer é usar a replicação de dados. O SQL Server já possui recursos para suprir suas necessidades, creio que será improdutivo você partir para o linked server.

    Links para consulta:

    http://www.linhadecodigo.com.br/artigo/1473/sql-server-replication-passoapasso.aspx

    Abraços.

    Se útil, Classifique.


    Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com

    • Sugerido como Resposta Heloisa Pires quarta-feira, 6 de junho de 2012 13:59
    • Marcado como Resposta Heloisa Pires terça-feira, 10 de julho de 2012 15:29
    quarta-feira, 2 de maio de 2012 14:12
  • Dhiego pelo que estou a ler esta ferramenta permite fazer a replicação de dados via os comandos (menu) do sql server, né?

    Também dá para programar a atualização dos dados. Muito bom... será que se programar para cada 2 minutos o banco não ficará muito pesado?

    Outra duvida:

    No menu "New Publication Wizard" escolho o meu outro banco de dados, aquele que está noutra maquina né?

    Só assim é que terei as replicações a serem feitas para o meu pc do outro pc.

    Nota, uso o sql server 2008

    Obrigado


    Visual Basic 2008 Express Edition SQL Server Management Studio


    quarta-feira, 2 de maio de 2012 22:37
  • Olá Jonas,

    Você teve algum progresso nessa questão? Acredito que o link que o Dhiego enviou atende suas necessidades.

    Se conseguiu resolver de outra maneira, poste aqui para deixarmos arquivado no fórum.

    Obrigada,


    Heloisa Pires | LATAM Forum Support Engineer | Microsoft Corporation

    quarta-feira, 6 de junho de 2012 14:01
  • Jonas,

    Você pode fazer através do Wizard indicado pelo Dhiego, como também, se for o caso através do Wizard Copy Database, copiar o banco de dados para o outro ambiente.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quarta-feira, 6 de junho de 2012 14:05