Iremos conhecer as técnicas:
1\. Habilitar funcionalidades avançadas de acesso ao Driver do Excel (ACE.OLEDB):
- O Driver ACE.OLEDB é utilizado para acessar arquivos Excel mais recentes. Certifique-se de que o driver esteja instalado e habilitado.
Exemplo de código:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
2\. Consulta aos dados utilizando OPENROWSET:
- Utilize OPENROWSET para consultar dados diretamente de um arquivo Excel.
Exemplo de código:
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\Caminho\Para\Arquivo.xlsx', 'SELECT * FROM [Planilha$]');
3\. Uso da função EXEC:
- A função EXEC é usada para executar uma instrução SQL dinâmica ou procedimento armazenado.
Exemplo de código:
DECLARE @sqlQuery NVARCHAR(MAX);
SET @sqlQuery = 'SELECT * FROM MinhaTabela';
EXEC(@sqlQuery);
4\. Inserir dados em nova tabela automaticamente (INSERT INTO):
- Use INSERT INTO para inserir dados de uma consulta em uma nova tabela.
Exemplo de código:
INSERT INTO MinhaNovaTabela (Coluna1, Coluna2)
SELECT Campo1, Campo2 FROM MinhaTabela WHERE AlgumaCondicao;
5\. Criar servidor associado para o arquivo Excel (LINKED SERVER):
- Configure um Linked Server para acessar arquivos Excel como se fossem servidores de banco de dados remotos.
Exemplo de código:
EXEC sp_addlinkedserver
@server = 'ExcelServer',
@provider = 'Microsoft.ACE.OLEDB.12.0',
@srvproduct = 'Excel',
@datasrc = 'C:\Caminho\Para\Arquivo.xlsx',
@provstr = 'Excel 12.0';
6\. Configurar login no linked server:
- Associe um login do SQL Server ao Linked Server para autenticação.
Exemplo de código:
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'ExcelServer',
@useself = 'false',
@locallogin = 'SeuLogin',
@rmtuser = 'UsuarioExcel',
@rmtpassword = 'SenhaExcel';
Certifique-se de substituir os valores nos exemplos de código pelos adeq
uados para o seu ambiente. Estes exemplos fornecem uma base para habilitar e utilizar funcionalidades avançadas ao acessar dados de arquivos Excel no Microsoft SQL Server.