SQL Server: Trabalhando de maneira rápida e simples com arquivos texto e planilhas do Excel

 

Esta dica é interessante para os iniciantes no SQL, em muitos casos precisamos importar para a nossa base de dados SQL Server 2000/2005 uma planilha do Excel ou um arquivo texto, daí vem a duvida: Como fazer isso de forma rápida? Usar o DTS? Não, existe uma maneira bem simples e bem mais rápida de fazer isso, o SQL Server pode acessar diretamente um arquivo texto ou arquivo do Excel!!! Dúvida? Veja a continuação do artigo:

 

A função OPENROWSET

Esta é uma das poderosas funções da linguagem Transact-SQL, através dela podemos trabalhar com outros DataSources no SQL Server diretamente via T-SQL. Vejamos agora um exemplo prático, supondo a planilha de amigos conforme você pode ver na Figura 1, imagine que precisamos importar esta planilha para uma tabela do SQL Server, você pode usar a função OPENROWSET e fazer a importação de maneira rápida e simples.

 

Figura1.JPG

Figura 1. Tabela de amigos que queremos importar para uma tabela do SQL Server

 

Antes de mais nada veremos como ler as informações da planilha usando a função OPENROWSET. Na Listagem 1 você pode observar o código em Transact-SQL que lê as informações da planilha (um detalhe importante a frisar é que se a planilha estiver aberta você não conseguirá acessá-la). Na Figura 2 você pode ver o resultado no SQL Server Management Studio e na Figura 3 temos a estrutura da tabela TB_AMIGOS onde gravaremos as informações vindas da tabela do Excel.

 

Listagem 1. Query em Transact-SQL para ler informações da planilha do Excel

SELECT * FROM OPENROWSET(Microsoft.Jet.OLEDB.4.0,

       Excel 8.0;DATABASE=C:\Amigos\RELAÇÃO DE AMIGOS.XLS,

 SELECT * FROM [Amigos$])

 

                                                                                                                                                                                               

Figura2.JPG

Figura 2. Acessando a planilha do Excel via Transact-SQL

 

Figura3.JPG

Figura 3. Estrutura da tabela TB_AMIGOS

 

Importando as informações para a tabela TB_AMIGOS

Aqui você já pode perceber a utilidade da função OPENROWSET, vamos então importar as informações diretamente para a tabela TB_AMIGOS, em seguida veremos os registros já importados. Na Listagem 2 você pode ver o código Transact-SQL que faz a importação das informações e a instrução para selecionar os registros importados. Na Figura 4 temos o resultado sendo mostrado pelo SQL Server Management Studio.

 

Listagem 2. Importando as informações da planilha do Excel para a tabela TB_CLIENTE

INSERT INTO TB_AMIGOS SELECT * FROM

OPENROWSET(Microsoft.Jet.OLEDB.4.0,

       Excel 8.0;DATABASE=C:\Amigos\RELAÇÃO DE AMIGOS.XLS,

 SELECT * FROM [Amigos$])

GO

SELECT * FROM TB_AMIGOS

 

 

Figura4.JPG 

Figura 4. Exibindo os registros da tabela TB_AMIGOS após a importação

 

Trabalhando também com arquivos texto

Imagine o mesmo cenário acima, porém agora as informações estão em um arquivo texto ao invés de uma pasta de trabalho do Excel, com algumas pequenas alterações você pode também trabalhar com arquivos texto. Veja na Figura 5 as informações em formato texto e na Listagem 3 o código em Transact-SQL para processar as informações do arquivo texto e finalmente na Figura 6 você pode ver o resultado no SQL Server Management Studio.

 

Figura5.JPG

Figura 5. Relação de amigos agora em formato texto

 

Listagem 3. Importando as informações da planilha do Excel para a tabela TB_CLIENTE

SELECT * FROM

OPENROWSET(MSDASQL,Driver={Microsoft Text Driver (*.txt; *.csv)};

DefaultDir=C:\Amigos,

SELECT * FROM Relação_de_amigos.txt)

 

 

Figura6.JPG

Figura 6. Usando a função OPENROWSET para processar um arquivo texto