今天在做项目的时候,本地有一张客户表需要手动添加到数据库中。一下是导入方法:
首页开启导入功能,并允许进程中使用ACE.OLEDB.12:
--开启导入功能
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
导入代码(2种方法。一种是导入已存在表,一种是导入新表):
--如果接受数据导入的表已经存在
insert into 表 select * from
OPENROWSET('MICROSOFT.ACE.OLEDB.12.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
--如果导入数据并生成表
select * into 表 from
OPENROWSET('MICROSOFT.ACE.OLEDB.12.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
最后关闭外围设置:
--注意这里,要先关闭外围的设置,然后再关闭高级选项
exec sp_configure'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure'show advanced options',0
reconfigure
--关闭ACE.OLEDB.12的选项
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 0
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 0
Ok,一切完成。