将SQL查询到的数据导出到excle中

将SQL查询到的数据导出到excle中

EXEC master..xp_cmdshell 'bcp "select * from HistoryData.dbo.No3506$ where 日期=20160608"queryout D:\Temp.xls -c -q -S"localhost" -U"sa" -P"*****"'

注意:要把所有的语句写在一行,且使用双引号。

HistoryData.dbo.No3506$

开始由于没有指定数据库名而出现错误!

其中,上面的 queryout 输出文件的格式和路径(也可以为.txt格式),-S 为你的服务器名,-U为你的用户名,-P为你的密码。

而加重的部分为查询数据的SQL语句。

 

首次运行时,会弹出如下的错误提示:

SQL Server 阻止了对组件 'xp_cmdshell' 的 过程 'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

根据提示很清楚,这是由于安全而阻止了,没有开启'xp_cmdshell' 导致的。只要去开启'xp_cmdshell' 就可以解决此问题。

开启‘xp_cmdshell’的指令为:

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;

当然也可以关闭‘xp_cmdshell’,只要将后面的1改成0即可。

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE;


展开阅读全文

没有更多推荐了,返回首页