【发布时间】:2014-12-23 16:35:09
【问题描述】:
我有一个存储过程,它返回一个包含 30 列和大约 20 万条记录的表输出。存储过程的基线:在过程中使用 4 个临时表。
我需要获取此输出并将其放入 CSV 文件中。我尝试使用 SSIS,但 SSIS 必须执行使用 TEMP 表的存储过程似乎存在问题。所以现在我又回来处理存储过程的输出了。
简而言之:
- 需要以 CSV 格式输出存储过程,必须将其自动化以生成每日报告
- 尝试使用 SSIS,但 SSIS 无法使用 TEMP 表执行存储过程
- 如何在不使用 BCP/sqlcmd 的情况下获取存储过程以提供 CSV 输出
编辑:
很抱歉,通过 SSIS 绝对是可能的。使用设置 FMTONLY 开/关功能为我工作。请点击此链接:Follow this Link to Get Three ways to do this using SSIS
我特别想只使用存储过程来实现这一点。所以另一个问题加起来了:
我能否仅使用存储过程将 CSV 文件的输出上传到 SharePoint 网站。
编辑 2:
我可以只使用存储过程获取 CSV 文件中的输出吗? 如果有人可以建议我这部分,那会很有帮助
【问题讨论】:
-
不能在 SSIS 数据源存储过程中使用 TEMP 表并不完全正确。你只需要采取一些额外的步骤。我在使用“WITH FMTONLY ON/OFF”方法之前已经完成了,但还有其他方法:google.com/…
-
我更喜欢 SSIS 中的 IF (0=1) hackaround,但这绝对是可能的,而且很可能是最好的方法。一个例子stackoverflow.com/a/5076757/2587452
-
我不了解 SharePoint,但我敢打赌,使用 CLR proc 很容易做到。
-
所以你真的回答了你当前的问题,对吧?如果您想从 SQL 获取数据到 sharepoint,您确实需要使用某种外部代理(例如 power shell)来查询数据并将其推送到 sharepoint Web 服务
-
这是将文件推送到共享点的 powershell 代码:sharepointdiary.com/2012/07/…。您可以选择找到从 SQL Server 中提取 CSV 的代码并将它们拼接在一起
标签: sql-server sql-server-2008 stored-procedures ssis