在2012年ssis中调用存储过程

时间:2015-09-28 16:04:46

标签: stored-procedures ssis sql-server-2012

我在SSIS 2012套餐中遇到任务有问题。我正在创建一个包(按顺序):

  1. 截断SQL Server表中的数据
  2. 通过平面文本文件填充该表
  3. 然后执行存储过程
  4. 然后将数据导出到Excel
  5. 我正在使用的表在名为dbo.ClientData

    的数据库中称为SalesQuota

    前两个任务工作正常但我在执行包中的存储过程(通过执行SQL任务)时遇到问题。我已经尝试了从单击保持相同连接到true到尝试在任务中写出SQL Server过程的所有内容。但我不断收到错误。那么,我在Management Studio中使用SQL搜索来查看程序的存储位置,并且它显示它在服务器中的3个不同数据库中可能是错误的原因?我用Google搜索并看到有关将变量(?)映射到任务的内容,但我找不到该过程的参数。

    这是我得到的错误

      

    [执行SQL任务]错误:执行查询“execute [dbo]。[up_client_sp]”失败,出现以下错误:
      无效的对象名称'SalesQuota.dbo.clientstatusgather'   可能的失败原因:查询问题,“ResultSet”属性设置不正确,参数设置不正确或连接未正确建立。

2 个答案:

答案 0 :(得分:0)

您需要设置与数据库的ADO.NET连接,并在SQL任务中使用该连接来调用存储过程。还有一个属性调用IsQueryStoredProcedure应该设置为true。

您可以在SQL任务编辑器的参数映射选项卡上设置参数,如果您的SP返回任何数据,您可以使用SQL任务编辑器中的结果集选项卡捕获它。但是,如果您的SP实际上正在返回要捕获的结果集,则只需要这样做。

答案 1 :(得分:0)

Sp_ helptext' PROCNAME'将为您编写存储过程的脚本。用吗?作为可变空间持有者在您的SSIS包中为您的参数。我假设你正在使用sql任务。我还建议您使用oledb连接。