Consulta SQL para a função OPENROWSET:--
1) Abra o SQL Server Management Studio
2) Abra o painel de consultas e escreva os seguintes comandos
3) Para arquivos Excel 97 – 2003 que são arquivos com extensão XLS, use
SELECT * INTO [dbo].[Addresses]
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\SQL Scripts\msp.xls;IMEX=1;HRD=Yes','SELECT * FROM [Sheet1$]')
eu. Ele irá criar uma tabela com o nome Addresses no banco de dados selecionado atualmente.
ii. Microsoft.Jet.OLEDB.4.0 é o driver usado para conversão
iii. Arquivo Excel com caminho - D:\SQL Scripts\msp.xls
4. IMEX=1 propriedade incluída, as colunas que contêm tipos de dados misturados são tratadas como tipos de dados string/texto.
v. A propriedade HRD =Sim significa que a linha superior do arquivo excel consiste no nome do cabeçalho da coluna
vi. Sheet1 é o nome da planilha que você deseja importar
vii. O Excel 8.0 especifica que é um arquivo excel de formato 97 – 2003
4) Para usar a consulta de filtro o usuário pode usar a cláusula where também com este comando como
SELECT * INTO [dbo].[Addresses]
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\SQL Scripts\msp.xls;IMEX=1;HRD=Yes','SELECT * FROM [Sheet1$]') where [column_name]=’value’
5) Para copiar o arquivo excel na tabela SQL predefinida, use a função OPENROWSET com o comando insert como:-
Create table Custom (Source_IP_ADD varchar(20),API_NAME varchar(50),COUNT_NO varchar(5),CLIENT_ID varchar(50),Date_OF_INVOKE varchar(50))
INSERT INTO [dbo].[Custom] ( [Source_IP_ADD], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_OF_INVOKE])
SELECT [Source_IP_ADDR], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_INVOK] FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=D:\SQL Scripts\msp.xls;IMEX=1;HRD=Yes','SELECT * FROM [Sheet1$]')
6) Para arquivos do Excel 2007 – 2010 que são arquivos com extensão XLSX, use
SELECT *INTO [dbo].[Addresses]FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0' ,'Excel 12.0;Database=D:\SQL Scripts\msp.xlsx;HDR=YES;IMEX=1' ,'SELECT * DE [Folha1$]')
eu. Irá criar uma tabela com o nome Endereços na base de dados selecionada
ii. Microsoft.ACE.OLEDB.12.0 é o driver usado para conversão
iii. Arquivo Excel com caminho - D:\SQL Scripts\msp.xlsx
4. IMEX=1 propriedade incluída, as colunas que contêm tipos de dados misturados são tratadas como tipos de dados string/texto.
v. A propriedade HRD =Sim significa que a linha superior do arquivo excel consiste no nome do cabeçalho da coluna
vi. Sheet1 é o nome da planilha que você deseja importar
vii. O Excel 12.0 especifica que é um arquivo excel de formato 2007 – 2010
7) Para copiar o arquivo excel na tabela SQL predefinida, use a função OPENROWSET com o comando insert como:-
Create table Custom (Source_IP_ADD varchar(20),API_NAME varchar(50),COUNT_NO varchar(5),CLIENT_ID varchar(50),Date_OF_INVOKE varchar(50))
INSERT INTO [dbo].[Custom] ( [Source_IP_ADD], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_OF_INVOKE])
SELECT [Source_IP_ADDR], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_INVOK] FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0' ,'Excel 12.0;Database=D:\SQL Scripts\msp.xlsx;HDR=YES;IMEX=1' ,'SELECT * FROM [Sheet1$]')