Como importar dados para o SQL Server usando o Bulk Insert

Veremos nessa dica do Agnaldo um exemplo de como usar o comando BULK INSERT do SQL Server para copiar (importar) dados de um arquivo texto

Podemos usar o comando BULK INSERT do SQL Server para copiar (importar) dados de um arquivo-texto ou nativo do SQL Server (também chamados de flat file).

É o modo mais rápido de se importar dados; porém somente trabalha em uma direção e com um tipo de arquivo: flat file. Iniciamos nosso exemplo criando a estrutura, usando o SSMS (SQL Server Management Studio) do SQL Server 2005:

USE MASTER IF EXISTS(SELECT * FROM SYSDATABASES WHERE NAME = ‘EXEMPLO_COPIA’) DROP DATABASE EXEMPLO_COPIA – CREATE DATABASE EXEMPLO_COPIA GO – USE EXEMPLO_COPIA – CREATE TABLE PRODUTO ( COD INT, NOME VARCHAR(50), PRECO DEC(9,2) )

Em seguida, criamos o arquivo-texto que contém os dados que serão importados.

Ainda no SSMS, executamos o seguinte comando:

BULK INSERT PRODUTO FROM ‘C:\PRODUTOSTAB.TXT’

Agora fazemos um select para confirmar a importação:

SELECT * FROM PRODUTO

No final do select vemos que os acentos não foram importados corretamente. Para corrigir isso atribuímos o valor ACPao parâmetro CODEPAGE.

BULK INSERT PRODUTO FROM ‘C:\PRODUTOSTAB.TXT’ WITH (CODEPAGE=‘ACP’)

Tome o cuidado de truncar a tabela (apagar os dados) antes de importar novamente. Para essa tarefa, use o comando:

TRUNCATE TABLE PRODUTO

Os parâmetros mais usados do BULK INSERT são:

Por exemplo:

BULK INSERT PRODUTO FROM ‘C:\PRODUTOSTAB.TXT’ WITH ( FORMATFILE=‘C:\PRODUTOSTAB.FMT’, CODEPAGE=‘ACP’, MAXERRORS = 0, FIRE_TRIGGERS, FIRSTROW = 1, LASTROW = 10 )

Artigos relacionados