当使用SQL Server(2005,2008)“将结果另存为...”选项时,我确实得到了一个CSV,但是SQL Server没有做我认为适当的CSV创建。
具体来说,如果我的数据包含逗号,那么这些字段不会用双引号括起来。我现在正在查看的特定数据集不包含带双引号的字段,但如果确实如此,我不确定SQL Server是否会正确执行这些操作。
每周我都要对远程服务器上的数据库运行查询,该数据库生成大约36,000行,我必须以CSV格式将其恢复到办公室中的某个人。到目前为止,我一直在复制数据,然后将其粘贴到Excel(通过远程桌面)。但是从远程剪贴板粘贴36k行需要花费很长时间。当这种情况发生时,Excel会提供各种“等待OLE操作完成”消息框。
我更喜欢只运行查询,将结果保存为远程服务器本身的CSV,然后复制文件。
长期来说,我会为我自动编写一个流程,但是我已经解决了SQL Server这个问题多年了,但是疼痛程度还不够高,我现在找不到解决方案了
答案 0 :(得分:1)
抱歉,我现在不在Windows框中 - 您是在谈论SQL Management Studio中的查询管理器应用程序吗?
执行所需操作的最佳方法是使用SQL Server提供的数据导入/导出工具(抱歉,现在无法检查名称)。
答案 1 :(得分:1)
选择菜单项工具>出现选项和选项对话框。在“选项”对话框中,导航到“查询结果”> SQL Server> '结果到文本'。选择“输出格式”项“自定义分隔符”。在“自定义分隔符”字段中指定分隔符。单击“确定”保存。
打开查询窗口并选择菜单项Query> '结果'和'结果到文件'或'结果到文本'。运行您的查询,该查询将使用您指定的分隔符输出。
对于自动化过程,请查看SQL Server BCP命令行实用程序,以便从SQL Server输出数据。通过命令行开关,您可以完全控制分隔符和文本限定符。使用BCP非常简单,即使长期过程的其他元素没有到位,我也建议使用它
我有一个自动流程调用BCP,它使用存储过程收集每晚压缩和FTP到客户端的数据。我的进程在SQL Server计算机上的Scheduled Task启动的批处理文件中运行。
答案 2 :(得分:1)
这听起来像是SSMS错误而不是sql server错误。我认为乔的答案会解决你的问题。
如果你有可以使用的Integration Services,我会恳请你看一下,你可以在任何时候敲一个包来做。
答案 3 :(得分:1)
我一直在使用内部制作的VBS脚本将结果集导出为CSV文件已经有一段时间了。
这是一个链接:exec_script.zip
以下是一个示例用法:
c:>cscript //nologo exec_script.vbs /s:MyServer /d:MyDb /q:"exec MyStoredProc" /r:MyFile.csv /header