Olá pessoal, neste post iremos demostrar um exemplo prático de como importar um arquivo TXT grande em uma tabela no SQL Server usando o comando BULK INSERT.
Suponha que você tenha um arquivo chamado “dados.txt” que contém 36 bilhões de linhas e que você queira importar em uma tabela no SQL Server chamada “dados_importados”.
- Crie uma tabela no SQL Server usando o seguinte comando:
CREATE TABLE dados_importados (
coluna1 tipo_de_dado1,
coluna2 tipo_de_dado2,
...
)
Substitua “coluna1”, “tipo_de_dado1”, “coluna2”, “tipo_de_dado2”, etc. pelas colunas e tipos de dados corretos para seus dados.
Abra o SQL Server Management Studio e conecte-se ao seu servidor SQL.
Abra uma nova janela de consulta e digite o seguinte comando:
BULK INSERT dados_importados
FROM 'C:\caminho\para\dados.txt'
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
BATCHSIZE = 1000000
)
Substitua “C:\caminho\para\dados.txt” pelo caminho completo para o seu arquivo TXT.
O parâmetro “FIELDTERMINATOR” especifica qual caractere é usado como separador de campo no arquivo TXT. Neste exemplo, estamos usando a vírgula (“,”).
O parâmetro “ROWTERMINATOR” especifica qual caractere é usado como separador de linha no arquivo TXT. Neste exemplo, estamos usando a nova linha (“\n”).
O parâmetro “BATCHSIZE” especifica quantas linhas do arquivo TXT são importadas de uma vez. Neste exemplo, estamos importando 1.000.000 de linhas por lote.
- Execute o comando e aguarde a importação ser concluída. Dependendo do tamanho do arquivo TXT e do hardware do servidor SQL, isso pode levar algum tempo.
Depois de concluída a importação, você deve ter todos os seus dados armazenados na tabela “dados_importados” no SQL Server. Você pode então executar consultas SQL para extrair as informações que você precisa.
Outra forma bastante interessante é a seguinte:
Aqui estão alguns exemplos adicionais de como importar dados de um arquivo TXT para o SQL Server usando outras técnicas:
- Use o comando OPENROWSET:
INSERT INTO dados_importados (coluna1, coluna2, ...)
SELECT coluna1, coluna2, ...
FROM OPENROWSET (
BULK 'C:\caminho\para\dados.txt',
FORMATFILE = 'C:\caminho\para\formato.xml',
MAXERRORS = 0
) AS dados_txt
Neste exemplo, estamos usando o comando OPENROWSET para ler o arquivo TXT e importá-lo diretamente na tabela “dados_importados”. O parâmetro “FORMATFILE” especifica o caminho para um arquivo XML que descreve o formato do arquivo TXT. O parâmetro “MAXERRORS” especifica quantos erros podem ocorrer durante a importação antes que ela seja interrompida.
Use o utilitário BCP (Bulk Copy Program):
bcp dados_importados in C:\caminho\para\dados.txt -S nome_do_servidor -T -c -t ,
Neste exemplo, estamos usando o utilitário BCP para copiar os dados do arquivo TXT diretamente para a tabela "dados_importados". O parâmetro "-S" especifica o nome do servidor SQL, "-T" usa autenticação integrada do Windows, "-c" especifica que os dados são copiados como caracteres ASCII e "-t" especifica que a vírgula (",") é usada como separador de campo.