none
exportar dados do Excel para o sql server 2012 RRS feed

  • Pergunta

  • Olá pessoal,

    Estou com a seguinte situação, preciso atualizar somente 3 colunas de uma tabela do meu banco de dados.

    Só que os dados que eu tenho estão todos em uma planilha do Excel.

    Eu preciso atualizar alguns campos da minha base de dados do Sql Server 2012 só que os dados que preciso atualizar estão em uma tabela do Excel, vou comparar campo código e se for igual atualizar com os novos dados.

    Isso é possível a partir de uma planilha? Alguém tem um tutorial que eu possa estudar? Alguma ferramenta que faça isso?

    Desde já agradeço 

    sábado, 14 de junho de 2014 14:07

Respostas

Todas as Respostas

  • Olá Leandro,

    Segue abaixo um vídeo que vai te ajudar:
    https://www.youtube.com/watch?v=Z1vqhYlwcyA
    O mesmo esta em inglês, mas isso não será problema pois é só seguir o vídeo.

    Abraço


    Se a resposta foi útil marcar 'como resposta'.

    segunda-feira, 16 de junho de 2014 02:14
  • Leandro,

    Você pode exportar sua tabela utilizando o SSIS ou o Wizard (Import/Export) do SSMS.

    Para evitar problemas de perda de dados, recomendo que você insira todo conteúdo de sua tabela em uma nova planilha em seu arquivo.

    Veja às opções indicadas para exportação de dados:

    http://technet.microsoft.com/en-us/sqlserver/ff686858.aspx

    http://msdn.microsoft.com/pt-br/library/ms140052.aspx

    http://msdn.microsoft.com/pt-br/library/ms141209.aspx

    Outras opções, se você precisa que atualize os dados de forma mais independente de uma ação de um profissional de TI pode ser usando tabelas vinculadas no seu arquivo Excel, mas neste caso você deve ter instalado na máquina local o PowerPivot de acordo com seu sistema (32-bits ou 64-bits).

    Veja maiores informações em:

    http://technet.microsoft.com/pt-br/library/gg413456(v=sql.105).aspx

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    segunda-feira, 16 de junho de 2014 13:09
  • Leandro,

    Uma possibilidade seria você criar um Linked Server entre o seu Servidor SQL Server e Excel, fazendo a leitura dos dados diretamente no Excel e comparando cada linha de registro e cada coluna, desta forma, fica um acesso independente de qualquer outra ferramenta.

    Veja o código de exemplo abaixo:

    EXEC sp_addlinkedserver @server = 'SalesServer', 
        @srvproduct='SQL Server'
    GO
    
    SELECT CustomerID, Date, Amount
    FROM SalesServer.SalesDB.Sales.Orders
    WHERE Quarter = @Quarter
    --
    EXEC sp_addlinkedserver
        @server = 'MyEmployees',
        @srvproduct = 'Jet 4.0',
        @provider = 'Microsoft.Jet.OLEDB.4.0',
        @datasrc = 'C:\Documents and Settings\User\My Documents\Microsoft Press\SQLAppliedTechSBS\Chapter08\EmployeeList.xls',
        @provstr = 'Excel 8.0'
    GO
    SELECT * FROM MyEmployees...Employees$

    Outro exemplo:

    EXEC sp_droplinkedsrvlogin 'SeuUsuario', Null
    
    Exec sp_dropserver 'OurLinkedServer', droplogins
    
    exec sp_addlinkedserver
    @server = N'OurLinkedServer',
    @srvproduct=N'Excel',
    @provider=N'Microsoft.Jet.OLEDB.4.0',
    @datasrc=N'\\servidor\Share\DePara_Laboratorio.xls',
    @provstr=N'Excel 8.0;IMEX=1'
     
    EXEC sp_addlinkedsrvlogin 'OurLinkedServer', 'False','SuaUsuario','Dominio\SuaUsuario','SuaSenha'
    
    exec sp_testlinkedserver OurLinkedServer
    -- Or select from it
    select top 1 * from OurLinkedServer...teste$


    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, 18 de junho de 2014 17:28
    Moderador