O que é o OPENDATASOURCE e para que serve?

É uma função disponível no SQL Server que pode ser utilizada para acessar dados remotos utilizando drives de conexão.

Com a função opendatasource você pode executar um comando SQL em uma planilha Excel, arquivo texto, Access e assim vai.

Torna-se possível fazer um relacionamento (join) como, por exemplo, uma tabela do seu bd com uma sheet do seu arquivo Excel.

Listagem 1: Usando a função OPENDATASOURCE para acessar um servidor SQL remoto



SELECT * FROM
OPENROWSET(‘SQLOLEDB’,‘SERVIDOR SQL’;
                        ‘USUARIO SQL ‘;
                        ‘SENHA SQL ‘,
                        ‘SELECT * FROM 
BANCO..TABELA’)

Listagem 2: Usando a função OPENDATASOURCE para acessar uma planilha Excel


SELECT * FROM
OPENDATASOURCE(‘MICROSOFT.ACE.OLEDB.12.0',
                ‘DATA SOURCE=\\CAMINHO\PLANILHA.XLS
                ;EXTENDED 
PROPERTIES=EXCEL 12.0
                ’)…[PLAN1$]

Dicas: Utilizar sempre um compartilhamento de rede, colocar entre colchetes o nome da aba/sheet seguido de $ (dólar)

Temos um problema com a Função OPENDATASOURCE

Usando a função OPENDATASOURCE para acessar arquivo Excel com SQL 64Bits

Você só vai conseguir utilizar o driver ace.oledb e em alguns casos também é necessário instalar no servidor um pacote com o driver.

Link: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13255

instalando o componente acima você terá suporte para as conexões com as seguintes extensões (*.xls, *.xlsx, and *.xlsb, *.mdb and *.accdb)

Assim finalizo este artigo, até um próximo.