sqlserver导入excel数据(将excel文件导入数据库的技巧)

sqlserver导入excel数据(将excel文件导入数据库的技巧)

下面演示用sql语句从excel表导入数据到sql server数据表,以及从sql server导出数据到excel表。

导入excel

——————————————————————–

exec sp_configure ‘show advanced options’,1

reconfigure

exec sp_configure ‘Ad Hoc Distributed Queries’,1

reconfigure

–创建数据表并导入数据

SELECT * INTO test FROM OPENROWSET(‘Microsoft.ACE.OLEDB.12.0’,

‘Excel 8.0;Database=E:\test.xlsx’, [Sheet1$])

–导入数据到已有的数据表

insert into test

SELECT * FROM OPENDATASOURCE(‘Microsoft.Ace.OleDb.12.0’, ‘Extended Properties=”Excel 12.0;HDR=YES;IMEX=1″;

Data Source=”E:\test.xlsx”‘ )…[sheet1$]

exec sp_configure ‘Ad Hoc Distributed Queries’,0

reconfigure

exec sp_configure ‘show advanced options’,0

reconfigure

——————————————————————–

导出excel

——————————————————————–

exec sp_configure ‘show advanced options’,1

reconfigure

exec sp_configure ‘xp_cmdshell’,1

reconfigure

–导出整张表

–EXEC master..xp_cmdshell ‘bcp “数据库.dbo.表名” out E:\Temp.xlsx -c -q -S”服务器名” -U”用户” -P”密码” ‘

EXEC master..xp_cmdshell ‘bcp “check.dbo.test” out E:\Temp.xlsx -c -q -S”hostname” -U”sa” -P”123456″ ‘

–根据Query语句导出

EXEC master..xp_cmdshell ‘bcp “select * from [check].dbo.test” queryout E:\Temp.xlsx -c -q -S”hostname” -U”sa” -P”123456″‘

exec sp_configure ‘xp_cmdshell’,0

reconfigure

exec sp_configure ‘show advanced options’,0

reconfigure

——————————————————————–

遇到问题解决

1、提示未在本地计算机注册“Microsoft.ACE.OLEDB.12.0”

解决:下载安装AccessDatabaseEngine,注意版本和64、32位区别。

下载链接(2010):

https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=13255

2、提示SQL Server 阻止了对组件 ‘Ad Hoc Distributed Queries’ 的 STATEMENT’OpenRowset/OpenDatasource’ 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 ‘Ad Hoc Distributed Queries’。

解决:开启’Ad Hoc Distributed Queries’,使用后关闭

开启:

exec sp_configure ‘show advanced options’,1

reconfigure

exec sp_configure ‘Ad Hoc Distributed Queries’,1

reconfigure

关闭:

exec sp_configure ‘Ad Hoc Distributed Queries’,0

reconfigure

exec sp_configure ‘show advanced options’,0

reconfigure

sqlserver导入excel数据(将excel文件导入数据库的技巧)

发表评论

登录后才能评论