SQL Server 2008 脚本导入Execl数据

使用SQL脚本导入Execl数据,是使用SQL的链接服务器的访问接口来完成的.

1.所以首先,需要数据库中有对应的Execl访问接口,使用的是SQlServer2008R2+Office2013,所以安装使用的是ACE2010的驱动

下载地址:  http://www.microsoft.com/zh-cn/download/details.aspx?id=13255  

安装之后在数据会有对应的访问接口

2.开启Ad Hoc Distributed Queries

--开启Ad Hoc Distributed Queries
EXEC sp_configure 'show advanced options',1 
RECONFIGURE
GO
EXEC sp_configure 'Ad Hoc Distributed Queries',1
RECONFIGURE
GO

3.设置访问接口属性,开启"动态参数"和"允许进程内"选项, 可以用可视化设置,也可以脚本设置.

 

--设置开启访问接口的"允许进程内"和"动态参数"
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1    
GO    
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1    
GO   

4.创建连接服务器实例,进行Excel的数据操作,查询,关联,完全当做一张数据表来操作即可

INSERT INTO Biz_Table 
SELECT * FROM 
OPENDATASOURCE('Microsoft.Ace.OleDb.12.0','Extended Properties="Excel 12.0;HDR=YES;IMEX=1";Data Source="D:\zjzk.xlsx"')...[Sheet1$] AS xls
LEFT JOIN Biz_Sell1 AS s1 ON s1.ID=xls.ID

5.关闭Ad Hoc Distributed Queries

--关闭Ad Hoc Distributed Queries
EXEC sp_configure 'Ad Hoc Distributed Queries',0 
RECONFIGURE
GO
EXEC  sp_configure 'show advanced options',0 
RECONFIGURE 
GO

 

需要注意的几点

1.在使用OPENDATASOURCE 初始化链接服务器接口的时候,后面的...[Sheet1$] 中的名称需要和Execl文档中的需要查询的数据的选项卡的名字对应.

2.在进行数据操作的时候Excel文件需要关闭,再操作,否则无法初始化

3.如果遇到类型转换错误的问题,但是Excel中数据又没有问题,此时使用select * 查询一下所有数据,有可能Excel表中有空行数据,导致

 

posted @   竹殇  阅读(1196)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示