Execl(2003)数据 导入 SQL Server(2005)

4 篇文章 0 订阅
2 篇文章 0 订阅
 

最近在做这个问题的时候,发现网上很多资料不是很全,而且有些是有错的,现在我把问题解决了,特把相应的方法贴出来。

 

在执行插入语句前,需要做下面几步操作:

1、从开始菜单进入到 配置工具 > sql server 2005 外围应用配置器  >  服务和连接的外围配置器 >  Datebase Engine  > 服务,然后重启sqlserver服务。(在数据库非正常关闭之后,可能会出现,“没法初始化数据源的错误”,此时重启一下sqlserver服务就可以了)

 

2、然后运行 regedit 进入注册表编辑器 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\Providers\Microsoft.Jet.OLEDB.4.0 新建DWORD  (64位值)名为DisallowAdhocAccess 值为0.

 

3、注意:

  3.1、把需要导入的Execl文件关闭;  

  3.2、配置工具 > SQL Server 外围配置管理器 > 功能的外围应用配置器 > Database Engine > 即席远程查询 > 启用OPENROWSET 和                        OPENDATASOURCE 支持 (勾选上)

 

3、在执行插入语句前,必须先打开这个组件服务:

exec sp_configure 'show advanced options',1

reconfigure

exec sp_configure 'Ad Hoc Distributed Queries',1

reconfigure 

   注意:在每次用完之后,记得把它关闭。

exec sp_configure 'Ad Hoc Distributed Queries',0

reconfigure 

exec sp_configure 'show advanced options',0

reconfigure
 

 

4、插入语句:

  
/*新建表y,同时插入数据*/
select * into y from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="G:\1.xls";Extended properties= "Excel 8.0;HDR=YES;IMEX=1"')...[Sheet1$]
/*新建表y,同时插入数据*/

 

/*插入到已有的表x中*/
insert into x select * from  OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE=G:\1.xls',Sheet1$);
/*插入到已有的表x中*/

 

<补充>

参数HDR的值:
HDR=Yes,这代表第一行是标题,不做为数据使用 ,如果用HDR=NO,则表示第一行不是标题,做为数据来使用。系统默认的是YES

 

参数Excel 8.0
对于Excel 97以上版本都用Excel 8.0

IMEX ( IMport EXport mode )设置

  IMEX 有三种模式,各自引起的读写行为也不同,容後再述:

  0 is Export mode

  1 is Import mode

  2 is Linked mode (full update capabilities)

  我这里特别要说明的就是 IMEX 参数了,因为不同的模式代表著不同的读写行为:

  当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。

  当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。

  当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。

意义如下:

0 ---输出模式;
1---输入模式;
2----链接模式(完全更新能力)

转载作者: guolebin7
SQL Server导入 Excel 文件,有以下几种方法: 方法一:使用 SQL Server Management Studio 1. 在 SQL Server Management Studio 中,选择要导入数据的目标数据库; 2. 在“对象资源管理器”中,右键单击数据库,选择“任务” ->“导入数据”; 3. 在“导入数据向导”中,选择“Microsoft Excel”作为数据源,指定 Excel 文件的位置; 4. 选择“目标服务器类型”为“SQL Server”,指定目标数据库; 5. 选择“数据源视图”,定义数据源和目标表之间的映射关系; 6. 完成向导,执行导入操作。 方法二:使用 SQL Server Integration Services (SSIS) 1. 在 SQL Server Data Tools 中创建一个 SSIS 项目; 2. 添加一个“Excel 数据源”组件,指定 Excel 文件的位置; 3. 添加一个“SQL Server 目标”组件,指定目标数据库和表; 4. 连接数据源和目标组件,定义数据源和目标表之间的映射关系; 5. 执行 SSIS 包,完成数据导入。 方法三:使用 OPENROWSET 函数 1. 使用以下 SQL 语句创建一个表,用于存储 Excel 文件中的数据: CREATE TABLE ExcelData ( [列名1] [数据类型1], [列名2] [数据类型2], ... ) 2. 使用以下 SQL 语句将 Excel 文件中的数据导入到表中: INSERT INTO ExcelData SELECT [列名1], [列名2], ... FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=[Excel文件路径];HDR=YES', 'SELECT * FROM [Sheet1$]') 其中,[列名1]、[列名2] 等为表中的列名,[数据类型1]、[数据类型2] 等为列的数据类型,[Excel文件路径] 为 Excel 文件的完整路径,[Sheet1$] 为 Excel 文件中的工作表名称。如果 Excel 文件的扩展名为 .xls,则将 'Microsoft.ACE.OLEDB.12.0' 替换为 'Microsoft.Jet.OLEDB.4.0'。 以上三种方法,你可以选择最适合你的情况的方法来导入 Excel 文件。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值