SQL-fråga för OPENROWSET-funktionen :--
1) Öppna SQL Server Management Studio
2) Öppna frågefältet och skriv följande kommandon
3) För Excel 97 – 2003 fil som är filer med tillägg XLS använd
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$]')
i. Det kommer att skapa tabell med namn Adresser i den aktuella valda databasen.
ii. Microsoft.Jet.OLEDB.4.0 är drivrutinen som används för konvertering
iii. Excel-fil med sökväg - D:\SQL Scripts\msp.xls
iv. IMEX=1 egenskap ingår, kolumner som innehåller blandade datatyper behandlas som sträng-/textdatatyper.
v. HRD =Ja-egenskapen betyder att den översta raden i excel-filen består av kolumnrubriknamn
vi. Blad1 är namnet på arket du vill importera
vii. Excel 8.0 anger att det är 97 – 2003 format Excel-fil
4) För att använda filterfrågan kan användaren använda where-satsen också med detta kommando som
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) För att kopiera excel-filen i fördefinierad SQL-tabell använd OPENROWSET-funktionen med insert-kommando som:-
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) För Excel 2007 – 2010 fil som är filer med tillägg XLSX använd
VÄLJ *INTO [dbo].[Adresser]FRÅN OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=D:\SQL-skript\msp.xlsx;HDR=YES;IMEX=1','SELECT * FRÅN [Sheet1$]')
i. Det kommer att skapa tabell med namn Adresser i den aktuella valda databasen
ii. Microsoft.ACE.OLEDB.12.0 är drivrutinen som används för konvertering
iii. Excel-fil med sökväg - D:\SQL Scripts\msp.xlsx
iv. IMEX=1 egenskap ingår, kolumner som innehåller blandade datatyper behandlas som sträng-/textdatatyper.
v. HRD =Ja-egenskapen betyder att den översta raden i excel-filen består av kolumnrubriknamn
vi. Blad1 är namnet på arket du vill importera
vii. Excel 12.0 anger att det är 2007 – 2010 format excel-fil
7) För att kopiera excel-filen i fördefinierad SQL-tabell använd OPENROWSET-funktionen med insert-kommando som:-
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$]')