BULK INSERT

Realizar tarefas utilizando interface e nosso amigo (mickey) mouse pode ser muito confortável, no entanto, nem sempre elas estão disponíveis ou em alguns cenários podem não ser a solução mais adequada.

Hoje pela manhã precisava importar dados para uma de nossas bases, a tarefa era urgentíssima, mas como sabemos é justamente nessas horas que dá tudo errado! Meu Management Studio acordou mal humorado e quando cliquei na opção importar ele disse sem pestanejar:

Unable to cast COM object of type ‘Microsoft.SqlServer.Dts.Runtime.Wrapper.PackageNeutralClass’ to interface type ‘Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSContainer90’ (…)

“Putz. Ok, hoje é sexta-feira, posso ir no Google e pesquisar sobre esse (maldito) erro”. Enquanto pensava nisso meu querido gerente liga perguntando: “Já importou os dados?”…

Ok, vamos deixar o Google pra lá (por enquanto).

Existe uma forma muito prática de importar dados no SQL Server e foi a ela que recorri, o comando T-SQL é o BULK INSERT e é bem simples, veja o exemplo:

 

BULK INSERT tb_unidade_taxas FROM ‘C:\arquivos_temp\tx_unid.txt’

WITH

      (

      FIRSTROW = 2,

      FIELDTERMINATOR =‘;’

      );

 

Neste caso o arquivo que eu precisava importar era o tx_unid.txt e ele foi gravado em C:\arquivos_temp do meu servidor SQL. Os dados desse arquivo foram importados para a tabela [tb_unidade_taxas] e como ele tinha algumas particularidades tive que informar no BULK INSERT que ele deveria ignorar a primeira linha (era uma linha com descrição das colunas) e o caractere o que separava um campo do outro era o ponto-e-vírgula (FIELDTERMINATOR =’;’).

 

Pronto! Arquivo importado.

O BULK INSERT tem diversos parâmetros que você pode conferir aqui.

 

Em outra oportunidade irei comentar outras vantagens da utilização do BULK INSERT e também pretendo comentar sobre o BCP, mas agora vou ao Google ver se encontro o remédio pro mau humor do meu Management Studio 🙂

 

Até +

 

2 comments so far

  1. smarzaro on

    Fala Silinhas!!! 🙂

    Agora que vi que você tem um blog aqui no wordpress tb… Manda ver!!! 😉

    Ahh..Agora também sou ex-Unilinhares… Abração…

  2. Claudio Henn on

    Amigo, exite uma forma de fazer o BULK INSERT usando uma outra tabela como origem e não um arquivos?


Deixar mensagem para smarzaro Cancelar resposta