日期:2014-05-17  浏览次数:20540 次

在SQL Server2008 中如何将数据导出到Excel表中
我在SQL Server2008 中,想把数据导出到Excel表中,查询了网上的执行语句如下:
EXEC master..xp_cmdshell 'bcp"SELECT [area],[testtime]FROM [smscenter].[sms].[servicestat] ORDER BY [area],[testtime]" querout D:\table.xlsx -c -S"132.168.0.198" -U"he" -P"123456"'
但是总是出现如下错误:
消息 15281,级别 16,状态 1,过程 xp_cmdshell,第 1 行
SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。 
如果将'xp_cmdshell' 改为sp_configure 就会出现如下错误,
消息 15123,级别 16,状态 1,过程 sp_configure,第 51 行
配置选项 'bcp"SELECT [area],[testtime]FROM [s' 不存在,也可能是高级选项。
请教各位高手大侠们!

------解决方案--------------------
在外围配置管理器里有个功能设置的,里面就有xp_cmdshell的勾选按钮!
------解决方案--------------------

--SQL语句开xp_cmdshell

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
-- To disallow advanced options to be changed.
EXEC sp_configure 'show advanced options', 0
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO

 

--如果要禁用,

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To disable the feature.
EXEC sp_configure 'xp_cmdshell', 0
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

-- To disallow advanced options to be changed.
EXEC sp_configure 'show advanced options', 0
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO



------解决方案--------------------
SQL SERVER 和EXCEL的数据导入导出
1、在SQL SERVER里查询Excel数据:
-- ======================================================
SELECT * 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT * 
FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
-------------------------------------------------------------

2、将Excel的数据导入SQL server :