感谢您阅读我的博客,如果您现在工作、学习累了或者疲惫了,不妨聆听一下音乐,它能够减轻你的疲劳,还能够带给您一种舒适愉悦的心情。如果您认为这篇文章还不错或者有所收获,您可以在页面 右侧和底部 扫描二维码 打赏我,您的鼓励是我继续写作、分享的最大动力!

SQL-从Excel文件导入信息到数据库表

1.要实现的效果

2.SQL脚本
/*
    时间:2018-6-22
    人员:LDH
    功能:SQL-从Excel文件导入信息到数据库表
*/


USE TestDB;
GO

IF OBJECT_ID('StudentsInfo', 'U') IS NOT NULL
    DROP TABLE dbo.StudentsInfo;

CREATE TABLE StudentsInfo 
( No
char(10) NOT NULL PRIMARY KEY,--学号是主键 Name nvarchar(20) NULL,--姓名 Sex char(2),--性别 Age int NULL --年龄 ) INSERT INTO StudentsInfo ( No, Name, Sex, Age ) VALUES ('001', N'zhangsan', '', 26), ('002', N'lisi', '', 26); -- EXEC sp_addextendedproperty 'MS_Description', '在此填写你的栏为注释', 'user', 此处为你的表名称, 'table', 此处为你的表名, 'column', 在此写你的字段名称 -- 给表中栏位添加注释 EXEC sp_addextendedproperty 'MS_Description', '学号', 'user', dbo, 'table', StudentsInfo, 'column', No; EXEC sp_addextendedproperty 'MS_Description', '姓名', 'user', dbo, 'table', StudentsInfo, 'column', Name; EXEC sp_addextendedproperty 'MS_Description', '性别', 'user', dbo, 'table', StudentsInfo, 'column', Sex; EXEC sp_addextendedproperty 'MS_Description', '年龄', 'user', dbo, 'table', StudentsInfo, 'column', Age; -- 查询表中数据 SELECT No, Name, Sex, Age FROM dbo.StudentsInfo; -- 清空表中数据 DELETE FROM dbo.StudentsInfo; /* ------------------------------------------------------------------------------------------------------------------------ SQL从Excel文件导入信息到数据库表 Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007 Office2003-'Microsoft.Jet.OLEDB.4.0' ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003 Office2007-'Microsoft.ACE.OLEDB.4.0' Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的 Office2016-'Microsoft.ACE.OLEDB.12.0' ------------------------------------------------------------------------------------------------------------------------ */ /* SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问, 因为此组件已作为此服务器安全配置的一部分而被关闭。 系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。开启方法如下: */ EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXEC sp_configure 'Ad Hoc Distributed Queries', 1; GO RECONFIGURE; GO ----------------------------------------------------------------------------------------------------------------------- -- 无法创建链接服务器“(null)”的 OLE DB 访问接口“MSDASC”的实例 -- 1.将SQL Server(MSSQLSERVER)和SQL Full-Filter Deamon Launcher(MSSQLSERVER)两个服务的登录身份改为LocalSystem -- 2. Management Studio--->服务器对象-->链接服务器-->Microsoft.Jet.OLEDB.4.0-->右键属性-->访问接口选项:全都不选 ----------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- -- 无法创建链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Ace.OLEDB.12.0" 的实例 -- 开启导入功能 EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE; -- 允许在进程中使用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; -------------------------------------------------------------------------------------------------- --【1】在本地做好要导入数据的Excel文件 --【2】将Excel文件里内容插入到临时表中 SELECT * INTO #tempT01 FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 'Data Source="G:/ExportName.xlsx";User ID=Admin;Password=;Extended properties=Excel 5.0')...[sheet1$] -- 要从指定Excel文件导入数据库的Excel文件的第一个Sheet名字必须为sheet1 --【3】查询导入的临时表中数据 SELECT * FROM #tempT01; INSERT INTO dbo.StudentsInfo ( No, Name, Sex, Age ) SELECT * FROM #tempT01; --【4】查询插入Excel文件里数据到数据库之后,进行查询 SELECT No, Name, Sex, Age FROM dbo.StudentsInfo; --【5】删除临时表 DROP TABLE #tempT01
3.执行结果

posted @ 2018-06-22 14:45  Love In Winter  阅读(51)  评论(0编辑  收藏  举报
作者: LifeDecidesHappiness
出处: http://www.cnblogs.com/LifeDecidesHappiness/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,否则保留追究法律责任的权利,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址 2468881301@qq.com  联系我,非常感谢。
踏实做一个为人民服务的搬运工!
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能,您的支持和鼓励是我继续写作、分享的最大动力!

点击关注不迷路,让我带你上高速!