OPENROWSET 函数的 SQL 查询:--
1) 打开 SQL Server Management Studio
2)打开查询板并编写以下命令
3) 对于 Excel 97 – 2003 文件,即扩展名为 XLS 的文件,请使用
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 文件的第一行由 Column Header 名称组成
六。Sheet1 是您要导入的工作表的名称
七。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) 对于 Excel 2007 – 2010 文件,即扩展名为 XLSX 的文件,请使用
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 * 来自 [Sheet1$]')
一世。它将在当前选定的数据库中创建名称为 Addresses 的表
ii. Microsoft.ACE.OLEDB.12.0 是用于转换的驱动程序
iii. 带路径的 Excel 文件 - D:\SQL Scripts\msp.xlsx
iv. 包括 IMEX=1 属性,包含混合数据类型的列被视为字符串/文本数据类型。
v. HRD =Yes 属性表示 excel 文件的第一行由 Column Header 名称组成
六。Sheet1 是您要导入的工作表的名称
七。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$]')