OPENROWSET関数のSQLクエリ:-
1)SQL ServerManagementStudioを開きます
2)クエリパッドを開き、次のコマンドを記述します
3)拡張子がXLSのファイルであるExcel 97 –2003ファイルの場合
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$]')
私。現在選択されているデータベースにAddressesという名前のテーブルが作成されます。
ii。 Microsoft.Jet.OLEDB.4.0は、変換に使用されるドライバーです
iii。パスのあるExcelファイル-D:\ SQL Scripts \ msp.xls
iv。 IMEX =1プロパティが含まれ、混合データ型を含む列は文字列/テキストデータ型として扱われます。
v。HRD=Yesプロパティは、Excelファイルの一番上の行が列ヘッダー名で構成されていることを意味します
vi。 Sheet1は、インポートするシートの名前です
vii。 Excel 8.0では、97〜2003形式のExcelファイルであると指定されています
4)フィルタークエリを使用するには、ユーザーはwhere句をこのコマンドでも使用できます。
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)事前定義されたSQLテーブルのExcelファイルをコピーするには、次のような挿入コマンドでOPENROWSET関数を使用します。-
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)拡張子XLSXのファイルであるExcel 2007 –2010ファイルの場合
SELECT *INTO[dbo]。[Addresses]FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0'、'Excel 12.0; Database =D:\ SQL Scripts \ msp.xlsx; HDR =YES; IMEX =1'、'SELECT * FROM [Sheet1 $]')
私。現在選択されているデータベースにAddressesという名前のテーブルが作成されます
ii。 Microsoft.ACE.OLEDB.12.0は、変換に使用されるドライバーです
iii。パスのあるExcelファイル-D:\ SQL Scripts \ msp.xlsx
iv。 IMEX =1プロパティが含まれ、混合データ型を含む列は文字列/テキストデータ型として扱われます。
v。HRD=Yesプロパティは、Excelファイルの一番上の行が列ヘッダー名で構成されていることを意味します
vi。 Sheet1は、インポートするシートの名前です
vii。 Excel 12.0は、2007〜2010形式のExcelファイルであることを指定しています
7)事前定義されたSQLテーブルのExcelファイルをコピーするには、次のような挿入コマンドでOPENROWSET関数を使用します。-
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$]')