Banco de Dados - SQL Server

Inserindo conteúdo nas tabelas SQL a partir do Excel

Neste artigo você poderá realizar a inserção do conteúdo de um arquivo excel em suas tabelas.

por Andre Dantas



Este Linked Server será usado para preencher qualquer tabela existente em minha aplicação. No meu caso possuo uma tabela com o nome de “Questões” e outra com o nome “Usuários” do SQL Server 2005. Neste caso iremos usar o recurso de linked Server a partir de uma tabela Excel.

Siga os seguintes passos:

ü Verifique se o arquivo Excel tem a mesma arquitetura da sua tabela SQL Server 2005, ou seja, se você possui um tabela com os mesmo campos que o seu arquivo.xls. Veja o exemplo abaixo.

ü Tabelas Banco

ü Tabela Arquivo Excel Plan1$

ü Tabela Arquivo Excel Plan2$

ü Salve o arquivo Excel

Criando o Linked Server a partir do código abaixo. Com essa procedure você poderá criar um LS para o arquivo especificado abaixo ( c:\Questoes.xls).

ü A primeira linha do código adiciona o nome do link a ser criado

ü A quarta linha deve ser especificada o local do arquivo Excel

ü Execute a query

EXEC sp_addlinkedserver "Questoes",

"Jet 4.0",

"Microsoft.Jet.OLEDB.4.0",

"C:\Questoes.xls",

NULL,

"Excel 5.0"

GO

Criando o Linked Server a partir do código abaixo para os Participantes:

EXEC sp_addlinkedserver "PARTICIPANTES",

"Jet 4.0",

"Microsoft.Jet.OLEDB.4.0",

"C:\Participantes.xls",

NULL,

"Excel 5.0"

GO

STORED PROCEDURE PARA CONSULTAR OS LINKED SERVER EXISTENTES

EXEC sp_linkedservers

TRANSFERINDO O ARQUIVO EXCEL PARA O SQL SERVER 2005

O comando abaixo tem a função inserir os registros na tabela do SQL Server dos registros selecionados da tabela Excel atraves do Linked Server criado anteriormente.

Código para inserir dados na tabela Questao

INSERT INTO Questoes

(enunciado,alternativa1, alternativa2, peso,tema, tipo)

SELECT enunciado,alternativa1, alternativa2,peso,tema, tipo

FROM Questoes...plan1$

------------------------------------------------------------------------

Código para inserir dados na tabela Usuario

INSERT INTO Usuario

(nomeCompleto, email, rg, cpf, usuario)

SELECT nomeCompleto, email, rg, cpf, usuario

FROM PARTICIPANTES...plan2$

Dicas:

ü Certifique-se que a tabela do excel não tenha nenhum dado “NULL

ü Certifique que a tabela do execel não tenha coluna a mais do que na tabela do SQl Server 2005;

Pronto, agora você pode inserir qualquer conteúdo de arquivos que constam em sua máquina dentro de suas tabelas do sql.

Andre Dantas

Andre Dantas