一、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当中他们是字符串类型,因此导入失败:
在这里插入图片描述

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

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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐