OPENROWSET 関数の SQL クエリ :--
1) SQL Server Management Studio を開きます
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].[アドレス] FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0' ,'Excel 12.0;データベース=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$]')