none
Importar dados do excel 2010 para o SQL 2012 RRS feed

  • Pergunta

  • Sou iniciante no SQL, comecei a dar os meus primeiros passos, através do Importar e Exportar Dados do SQL 2012 Express, importei pasta do Excel 2010 com diversas planilhas, já efetuei diversas consultas, mas agora não estou conseguindo mais importar do excel, alquém pode me ajudar, sigo os mesmos passos e dá erro.

    • Editado Moacyr_Filho terça-feira, 25 de novembro de 2014 01:37
    terça-feira, 25 de novembro de 2014 01:31

Respostas

  • Durval, não tenho nenhum motivo especial para a importação, simplesmente estou estudando o SQL, conheço bem o Excel e pensei que seria bom conhecer uma comunicação entre os dois, já fiz a importação 2 vezes dos dados via importação, gerei várias consultas simples, seguindo exemplos de um livro e quando quis importar novamente dados do Excel, seguindo o mesmo caminho com o assistente de importação de dados do SQL e não consegui mais. Como sempre trabalho com relatórios e análise de dados, acho fundamental ter essa comunicação entre o Excel e o SQL

    Moacyr,

    Neste caso, além das opções que destacamos para você neste tópico você pode uitlizar o "Import Data..." no SSMS (clique com botão direito no seu banco e selecione "Tasks" -> "Import Data...").

    Selecione o arquivo que você deseja importar, preferencialmente com um layout definido entre colunas(sem gráficos ou relatórios formatados).

    Se a primeira linha da planilha indica o nome das colunas, então selecione a opção no Assistente (os drivers ou o próprio Excel deve estar instalado na sua máquina):

    Após a definição, você pode importar os dados para uma tabela auxiliar ou para uma nova tabela(como sugerido pelo assistente). Apesar de ser possível, eu sugiro que você insira os dados sempre em uma tabela auxiliar ou temporária e só depois de tratar os dados, ajustando como necessário, você insere/atualiza a tabela em Produção.

    Caso esteja criando uma nova tabela, você também poderá modificar os tipos de dados de cada coluna, ajustando o mais próximo possível dos dados em produção (sem perder formatação ou registros importantes).

    Outros detalhes de importações, eu acredito que a melhor forma de aprender é praticar. Utilize planilhas com várias informações e tipos de dados diferentes para simular o comportamento na importação deste dados, principalmente em relação à números como CPF, RG e outros que podem iniciar com "zero" ou datas (onde em alguns casos é necessário formatar para importar a uma coluna date ou datetime).

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    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, 1 de dezembro de 2014 12:57

Todas as Respostas

  • Deleted
    terça-feira, 25 de novembro de 2014 09:18
  • Moacyr,

    Segue um artigo sobre importação de dados de um arquivo Excel para uma tabela em SQL Server.

    http://social.technet.microsoft.com/wiki/pt-br/contents/articles/24213.importando-uma-planilha-excel-para-um-banco-de-dados-sql-server.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    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"

    quarta-feira, 26 de novembro de 2014 11:13
  • Moacir,

    Acredito que o seu Excel 2010 seja 32 bits!!! Qual é a plataforma do seu SQL Server 2012 Express?

    Você poderia informar qual é a mensagem de erro?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quarta-feira, 26 de novembro de 2014 12:24
    Moderador
  • O erro sempre dá na Execução da Operação do assistente de importação, na ação Validação aparece a mensagem abaixo:

    - Validando (Erro)

    <dir>
    <dir>

    Mensagens


    </dir></dir>
    <dir><dir>

    Erro 0xc020201b: Tarefa Fluxo de Dados 1: O número de colunas de entrada para Destino - Cad_cli$.Entradas[Destination Input] não pode ser zero.

    (Assistente de Importação e Exportação do SQL Server)

    Erro 0xc004706b: Tarefa Fluxo de Dados 1: Falha na validação de "Destino - Cad_cli$" com o status de validação "VS_ISBROKEN".

    (Assistente de Importação e Exportação do SQL Server)

    Erro 0xc004700c: Tarefa Fluxo de Dados 1: Falha na validação de um ou mais componentes.

    (Assistente de Importação e Exportação do SQL Server)

    Erro 0xc0024107: Tarefa Fluxo de Dados 1: Houve erros durante a validação da tarefa.

    (Assistente de Importação e Exportação do SQL Server)

    </dir></dir>

    E se examino a planilha no Editar Mapeamentos, vejo que foi adicionado duas colunas com as nomes F13 e F14 e no Visualizar as colunas estão em branco.


    • Editado Moacyr_Filho quinta-feira, 27 de novembro de 2014 01:54
    quinta-feira, 27 de novembro de 2014 01:53
  • O erro sempre dá na Execução da Operação do assistente de importação, na ação Validação aparece a mensagem abaixo:

    - Validando (Erro)

    <dir>
    <dir>

    Mensagens


    </dir></dir>
    <dir><dir>

    Erro 0xc020201b: Tarefa Fluxo de Dados 1: O número de colunas de entrada para Destino - Cad_cli$.Entradas[Destination Input] não pode ser zero.

    (Assistente de Importação e Exportação do SQL Server)

    Erro 0xc004706b: Tarefa Fluxo de Dados 1: Falha na validação de "Destino - Cad_cli$" com o status de validação "VS_ISBROKEN".

    (Assistente de Importação e Exportação do SQL Server)

    Erro 0xc004700c: Tarefa Fluxo de Dados 1: Falha na validação de um ou mais componentes.

    (Assistente de Importação e Exportação do SQL Server)

    Erro 0xc0024107: Tarefa Fluxo de Dados 1: Houve erros durante a validação da tarefa.

    (Assistente de Importação e Exportação do SQL Server)

    </dir></dir>

    E se examino a planilha no Editar Mapeamentos, vejo que foi adicionado duas colunas com as nomes F13 e F14 e no Visualizar as colunas estão em branco.


    Moacyr,

    Existe alguma necessidade especial para você efetuar esta importação através de um pacote SSIS?

    Se não, utilize o OPENROWSET como eu te indiquei:

    SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0; Database=C:\Microsoft\Test.xls; HDR=YES; IMEX=1',
    'SELECT * FROM [Plan1$]') 
    GO

    A observação do Junior é pertinente, caso seu servidor utilize uma plataforma 32bits, além do ACE você poderá utilizar o provider "JET 4.0" para realizar esta carga.

    Neste caso, um modo seria adicionando uma referência para o arquivo como um linkedserver. Veja um script para esta configuração abaixo:

    EXEC sp_addlinkedserver
        @server = 'SeuLinkedServer',
        @srvproduct = 'Excel',
        @provider = 'Microsoft.Jet.OLEDB.4.0',
        @datasrc = 'C:\Importacao\SeuArquivo.xls',
        @provstr = 'Excel 8.0;IMEX=1;HDR=YES;'
    GO
    
    SELECT * FROM OPENQUERY(SeuLinkedServer, 'SELECT * FROM [Planilha1]')
    GO

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    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"

    quinta-feira, 27 de novembro de 2014 13:16
  • Junior o Meu Excel é 32 bits o Importar e Exportar Dados também é 32 bits, o SQL não sei, procurei esta informação e não a encontrei, mas como o Excel  e o Importar e Exportar Dados são 32 bits, e como a importação dos dados é feita por ele, creio que não deveria dar problema.
    quinta-feira, 27 de novembro de 2014 21:17
  • Durval, não tenho nenhum motivo especial para a importação, simplesmente estou estudando o SQL, conheço bem o Excel e pensei que seria bom conhecer uma comunicação entre os dois, já fiz a importação 2 vezes dos dados via importação, gerei várias consultas simples, seguindo exemplos de um livro e quando quis importar novamente dados do Excel, seguindo o mesmo caminho com o assistente de importação de dados do SQL e não consegui mais. Como sempre trabalho com relatórios e análise de dados, acho fundamental ter essa comunicação entre o Excel e o SQL
    • Editado Moacyr_Filho quinta-feira, 27 de novembro de 2014 21:26
    quinta-feira, 27 de novembro de 2014 21:24
  • Moacyr_filho,

    Através do Management Studio você vai poder consultar todas as informações sobre o seu Servidor!!!

    Clicando com o botão da direita sobre o nome do seu Servidor, selecione a opção Properties, na Guia General ou Geral você vai poder obter tudo sobre a versão e edição do SQL Server.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    sexta-feira, 28 de novembro de 2014 14:26
    Moderador
  • Durval, não tenho nenhum motivo especial para a importação, simplesmente estou estudando o SQL, conheço bem o Excel e pensei que seria bom conhecer uma comunicação entre os dois, já fiz a importação 2 vezes dos dados via importação, gerei várias consultas simples, seguindo exemplos de um livro e quando quis importar novamente dados do Excel, seguindo o mesmo caminho com o assistente de importação de dados do SQL e não consegui mais. Como sempre trabalho com relatórios e análise de dados, acho fundamental ter essa comunicação entre o Excel e o SQL

    Moacyr,

    Neste caso, além das opções que destacamos para você neste tópico você pode uitlizar o "Import Data..." no SSMS (clique com botão direito no seu banco e selecione "Tasks" -> "Import Data...").

    Selecione o arquivo que você deseja importar, preferencialmente com um layout definido entre colunas(sem gráficos ou relatórios formatados).

    Se a primeira linha da planilha indica o nome das colunas, então selecione a opção no Assistente (os drivers ou o próprio Excel deve estar instalado na sua máquina):

    Após a definição, você pode importar os dados para uma tabela auxiliar ou para uma nova tabela(como sugerido pelo assistente). Apesar de ser possível, eu sugiro que você insira os dados sempre em uma tabela auxiliar ou temporária e só depois de tratar os dados, ajustando como necessário, você insere/atualiza a tabela em Produção.

    Caso esteja criando uma nova tabela, você também poderá modificar os tipos de dados de cada coluna, ajustando o mais próximo possível dos dados em produção (sem perder formatação ou registros importantes).

    Outros detalhes de importações, eu acredito que a melhor forma de aprender é praticar. Utilize planilhas com várias informações e tipos de dados diferentes para simular o comportamento na importação deste dados, principalmente em relação à números como CPF, RG e outros que podem iniciar com "zero" ou datas (onde em alguns casos é necessário formatar para importar a uma coluna date ou datetime).

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    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, 1 de dezembro de 2014 12:57