【问题标题】:Automate Stored Procedure Output to CSV without using BCP/sqlcmd不使用 BCP/sqlcmd 自动将存储过程输出到 CSV
【发布时间】: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


【解决方案1】:

右键服务器 -->Facents-->Surface Area Configuration -->XPCmshellEnbled -->true

exec master..xp_cmdshell 'BCP "sp_who" QUERYOUT C:\av\sp_who.txt -S MC0XENTC -T -c '

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多