Sql server 将数据从SQL Server查询导出到excel
我想将数据从查询导出到excel文件。我知道这里有很多这样的问题,但在我的情况下没有一个是可以接受的 例如,与使用OPENROWSET的本主题类似: 它只有在我自己创建testing.xls时才能成功执行,并且还定义了将从此excel文件中的查询导出的列数。否则,将发生错误:提供的值的列名或数量与表定义不匹配 我还在这里尝试另一种解决方案:使用Exec master..xp\u cmdshell 这确实有效,但我听说xp_cmdshell对SQL Server是一个巨大的安全威胁。所以,也许我不应该用它Sql server 将数据从SQL Server查询导出到excel,sql-server,security,export-to-excel,Sql Server,Security,Export To Excel,我想将数据从查询导出到excel文件。我知道这里有很多这样的问题,但在我的情况下没有一个是可以接受的 例如,与使用OPENROWSET的本主题类似: 它只有在我自己创建testing.xls时才能成功执行,并且还定义了将从此excel文件中的查询导出的列数。否则,将发生错误:提供的值的列名或数量与表定义不匹配 我还在这里尝试另一种解决方案:使用Exec master..xp\u cmdshell 这确实有效,但我听说xp_cmdshell对SQL Server是一个巨大的安全威胁。所以,也许我不
我还有别的办法可以试试吗?如果您正在寻找一个快速而肮脏的解决方案,您可以使用Management Studio本身 以下是步骤:
- 编写查询并运行它
- 右键单击结果窗格并选择“将结果另存为…”
- 选择您的文件夹/文件名,并确保在下面选择了CSV类型
- 现在使用Excel打开您的CSV文件;如果合适,将其保存在Excel中,作为本机Excel格式
另外,这本书有点过时,但很有趣。请尝试使用较新版本的Excel。从您的查询来看,您似乎正在使用Excel 97–此版本中可能存在大量错误和不兼容 如果这没有帮助,其他选项包括: -像Ozren建议的那样,从SSSM手动执行此操作 -尝试为此创建SSIS包 这里有几个其他的线程让你开始
您尝试过任何解决方案吗?我希望TSQL解决方案在我的存储过程中执行,因此这些解决方案与我的请求不匹配。请检查此问题的答案是否适用于您:我需要TSQL解决方案,使用OPENROWSET,我需要自己创建excel文件,为其定义列,否则我会得到错误:提供的值的列名或数量与表定义不匹配。
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\testing.xls;',
'SELECT * FROM [SheetName$]') select * from SQLServerTable