直接使用SQL SERVER数据库的导入功能操作步骤比较繁锁,而且有不同场景的兼容问题,如EXCEL文件版本问题,字段选择问题等,使用SQL脚本可以快速执行,只需要导入自己想要的字段,无需一个个手动选择,还可以方便置入程序,赶紧动起来吧。
操作步骤:
(1)服务配置
在目标的SQL Server主机上,Win+R调出运行,输入services.msc调出服务。将SQL Server (MSSQLSERVER)、SQL Full-text Filter Daemon Launcher (MSSQLSERVER)两个服务的登录身份,改为本地系统账户(右击服务,选择属性,切换到“登录”选项卡,登录身份改为“本地系统账户”)。
未做此项配置对应的错误提示为:无法初始化链接服务器 "(null)" 的 OLE DB 提供程序 "Microsoft.ACE.OLEDB.12.0" 的数据源对象
这个错误通常表示 SQL Server 进程和文件之间存在权限问题。 请确保运行 SQL Server 服务的帐户对文件具有完全访问权限。 按以上配置即可
(2)导入数据
-- 首先,确保已启用Ad Hoc Distributed Queries
EXEC sp_configure 'Show Advanced Options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
-- 然后,使用OPENROWSET导入Excel数据
INSERT INTO YourTargetTable
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0; Database=C:\path\to\your\spreadsheet.xlsx; HDR=YES; IMEX=1',
'SELECT * FROM [Sheet1$]');
-- HDR 表示首行是否为列名,YES 指首行为数据列标题,NO 表示首行也是数据行
-- IMEX 是 IMEX=1 表示混合模式
-- 完成操作后,可以禁用Ad Hoc Distributed Queries
EXEC sp_configure 'Ad Hoc Distributed Queries', 0;
RECONFIGURE;
EXEC sp_configure 'Show Advanced Options', 0;
RECONFIGURE;