我想将我的大型SSMS(SQL Server Management Studio)查询结果(2.5m行,9个字段)导出为.csv或逗号分隔的.txt(带标题)。 (MS SQL Server 2005管理工作室)将SSMS .rpt输出文件转换为.txt/.csv
这样我就可以逐行读入VBA程序(对数据执行某些计算)或在Excel中对其执行查询(例如,使用Microsoft Query )。计算很复杂,我更喜欢在SSMS以外的地方进行。
如果我在SSMS中选择'查询结果到文本'和一个小答案(几行例如高达200k),我当然可以简单地复制并粘贴到文本编辑器。对于我这里的大回答,我当然可以将200k左右的行一次复制并粘贴到Ultra-Edit等文本编辑器中。 (当我一次尝试所有2.5米的时候,我在SSMS中发现了一条内存警告。)但是对于未来我想要一个更优雅的解决方案。
对于'查询结果到文件',SSMS总是写入.rpt文件。 (当你在结果窗口中右键单击并选择'另存为'时,它会产生如上所示的内存错误。)
- >所以看起来我唯一的选择是让SSMS将结果输出到文件即.rpt,然后再将.rpt转换为.txt。
我认为这个.rpt是一个Crystal Reports文件?或者不是。我的电脑上没有Crystal Reports,因此我无法使用它来转换文件。
在Ultra-Edit中打开.rpt时看起来很好。但是,在Excel中的Microsoft Query中,标题不想显示。
当我简单阅读&使用VBA编写.rpt时,文件大小减半。 (330至180微克)。在Microsoft Query中,标题现在确实显示(尽管第一个字段名有一个有趣的主角,在其他完全不同的情况下,这在我之前发生过)。我似乎能够在Excel中对其做有意义的数据透视表。
但是,当我在Ultra-Edit中打开这个新文件时,它显示中文字符!难道在某个地方还会有一些有趣的角色吗?
- >是否有免费(和简单/安全)转换器应用程序可用的地方。或者我应该相信这个.txt适合读入我的VBA程序。
感谢
我不得不想知道,为什么要输出这么多的行,当你想要做的是进一步查询数据?不需要输出文字以与Access或Excel和SQL Server一起使用。另外,SQL Server如果相当擅长查询自己。 – Fionnuala
嗨,这是因为我想通过比“查询”风格更“处理”风格的程序代码运行数据。换句话说,读取多个输入文件(其中这个文件只有一个),执行多个过程/函数,然后写入多个输出文件。我只是使用VBA,因为我喜欢电子表格界面来输入我的运行参数。我可以用其他编程语言来替代它,而我的问题也是一样的。 – Relaxed1
我知道T-SQL可以很好地完成程序本身,我只是更喜欢一种编程语言,它本质上有点不同。 P.s.我现在已经意识到,我可以做的是:而不是SSMS,将T-SQL粘贴到Excel中并从相同的数据库执行它,但是使用VBA代码。然后,我可以更容易地直接将输出写入文本文件(最后)... – Relaxed1