【问题标题】:Creating a DTS package that uses a stored procedure创建使用存储过程的 DTS 包
【发布时间】:2014-05-12 15:37:24
【问题描述】:

我们正在尝试制作一个 DTS 包,它将在其中启动一个存储过程并将内容捕获到一个平面文件中。这必须每天晚上运行,并且新文件应该覆盖现有文件。

这通常不是问题,因为我们只需插入查询并运行它,但这次一切都足够复杂,我们选择使用使用临时表的存储过程来处理它。如何在 DTS 包中使用它?我尝试使用向导走正常路线,然后插入 EXEC BlahBlah.dbo... 它不在乎:

无法解析语句。附加信息:无效的对象名称“#DestinyDistHS”。 (Microsoft SQL Server Native Client 10.0)

任何人都可以在这里指导我正确的方向吗?

谢谢。

【问题讨论】:

  • 显然我使用了错误的术语(对不起,这是新的并且使用的是办公室语言)。我们在这里与 SSIS 合作。
  • 临时表通常需要在 SSIS 中使用烦人的解决方法,例如用空选择欺骗验证器等。使用物理表通常更容易。
  • 您是否在存储过程中使用临时表?如果是这样,那么使用 Execute SQL Task 调用存储过程不应该给你这个错误。你能提供更多细节吗?\

标签: stored-procedures ssis dts


【解决方案1】:

是否可以在您的 SP 中简单地填充一个非临时表,调用它并在导出时从非临时表中选择?

仅当您对存储过程有多个同时调用时,这才是一个问题。在这种情况下,您无法保存到单个表中。

如果您确实有多个同时通话,那么您可以:

  1. 创建一个临时表来保存结果
  2. 使用INSERT INTO #TempTable EXEC YourProc
  3. SELECT FROM #TempTable

您可能需要在更宽松的命令行工具(如 SQLCMD)中执行此操作。它对元数据没有那么挑剔。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-21
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    相关资源
    最近更新 更多