t-sql结果到文件中

时间:2011-09-15 20:52:25

标签: tsql

我花了几个小时搜索,今天没有运气。 我需要做的是编写一个t-sql查询,该查询将在SSMS中执行,并且应该将输出保存到文件中。 我对sql server 2008 r2以及操作系统(我相信Win 2008 Server)有完全的管理员访问权限

我无法使用命令行,批处理文件等。 它需要直接从SSMS完成,作为执行t-sql脚本。

它甚至不必漂亮:-) 它只需要完成这项工作。

我非常感谢任何帮助。

此致 马里乌什

3 个答案:

答案 0 :(得分:5)

查询>结果到>结果归档

您也可以在结果窗格中选择全部,然后右键单击左上角的单元格。可以选择“将结果另存为”,这样您就可以将结果保存为CSV格式。

如果您正在寻找更高级的东西,我建议您查看SSIS(SQL Server Integration Services),它是DTS的替代品。这通常用于数据文件导出(DFE)

修改

如果您需要通过脚本将结果导出到文件,请尝试以下操作:

INSERT INTO OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=c:\Test.xls;','SELECT productid, price FROM dbo.product') 

答案 1 :(得分:1)

如果您在SSMS中,则输出到文本文件的选项是工具栏旁边的执行按钮旁边的“结果...”选项之一。你想尝试更具程序性的东西吗?

如果您有权从SSMS执行xp_commandshell,您可以利用http://www.simple-talk.com/sql/t-sql-programming/the-tsql-of-text-files/上的假名Phil因素建议的一些技术。

答案 2 :(得分:1)

考虑到你的约束,我可以考虑两个选项

  • BCP将是最佳选择,将其与queryout选项一起使用我在bcp上间隔为命令行实用程序。

  • 创建一个sql代理作业,该作业只有一个步骤,即OS命令。该作业只有一个步骤,它运行一个sqlcmd来运行查询并将输出重定向到一个文件。创建作业后,脚本会运行它,然后删除作业和任何历史记录。这是一个令人高兴的慷慨解决方案Rube Goldberg,但会满足通过SSMS /自动化方法完成的要求。