数据库——多种方法导入Excel数据

本文详细介绍了多种将Excel数据导入SQLServer的方法,包括使用SQLServer自带的导入导出工具、复制粘贴以及通过Microsoft.ACE.OLEDB驱动程序。在导入过程中,还分享了解决因数据类型不匹配导致导入失败的技巧,包括修改Excel数据类型和调整数据库字段设置。
摘要由CSDN通过智能技术生成

一、SQL Server导入Excel数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下来就一直点击NEXT,直到完成
在这里插入图片描述
此时EXCEL的数据就被导入进SQL Server了:
在这里插入图片描述

在这里插入图片描述

二、小技巧导入Excel数据

这个技巧就是直接使用复制粘贴的方式:

注意:这种方法只适用于添加少量数据,如果是几十万行的数据,是无法这样导入的。

如图,我们在Excel当中直接复制数据:
在这里插入图片描述
右键PTYPES表,选择编辑前2002行:
在这里插入图片描述
直接右键粘贴:
在这里插入图片描述
此时就直接可以导入数据了:
在这里插入图片描述

三、使用Microsoft.ACE.OLEDB导入Excel数据

首先安装包:
在这里插入图片描述
执行如下代码导入Excel表格中的数据:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=D:\S072003DBS\食品销售数据\类别.XLSX',[类别$]);

在这里插入图片描述

如果发生报错,则参考如下代码:

	-- 报错一:SQLServer阻止了对组件'AdHocDistributedQueries'的STATEMENT'OpenRowset/OpenDatasource'的访问,
	-- 因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用。
	-- sp_configure启用'AdHocDistributedQueries'。

	-- 解决方法:
	
	-- 启用Ad Hoc Distributed Queries:
	exec sp_configure 'show advanced options',1
    reconfigure
    exec sp_configure 'Ad Hoc Distributed Queries',1
    reconfigure

	-- 为了安全,使用完成后,关闭Ad Hoc Distributed Queries
	exec sp_configure 'Ad Hoc Distributed Queries',0
	reconfigure
	exec sp_configure 'show advanced options',0
	reconfigure

	-- 报错二:无法创建链接服务器“(null)”的 OLE DB 访问接口“Microsoft.ACE.OLEDB.12.0”的实例。
	-- 解决方法:
	
	 --允许在进程中使用ACE.OLEDB.12
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
    --允许动态参数
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1

四、手动添加一行数据

	INSERT INTO PTYPES (PTID,PTNAME) VALUES(101,'细粮')

在这里插入图片描述
在这里插入图片描述

五、手动添加多行数据

	INSERT INTO PTYPES (PTID,PTNAME) VALUES
	(102,'有机蔬菜'),(103,'有机粮食'),(104,'有机水果')

在这里插入图片描述

五、解决类型不匹配致导入失败

在这里插入图片描述

在这里插入图片描述
发现下面导入失败:
在这里插入图片描述
原因在于供应商和类别的类型定义的是INT,但是在excel当中他们是字符串类型,因此导入失败:
在这里插入图片描述

在这里插入图片描述
解决方法:
将两者忽略。相应的,在数据库当中要将两者设置为允许空值。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
此时就导入成功了:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温欣2030

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值