Stored procedures 在ssis 2012中调用存储过程

Stored procedures 在ssis 2012中调用存储过程,stored-procedures,ssis,sql-server-2012,Stored Procedures,Ssis,Sql Server 2012,我的SSIS 2012包中的任务有问题。我正在创建一个包以(按顺序): 截断SQL Server表中的数据 通过平面文本文件填充该表 然后执行一个存储过程 然后将数据导出到Excel 我使用的表在一个名为SalesQuota 前两个任务工作正常,但我在执行包中的存储过程(通过执行SQL任务)时遇到问题。我尝试了从单击“保留相同连接”到“为真”,再到尝试在任务中写出SQL Server过程的所有方法。但我一直在犯错误。因此,我在ManagementStudio中使用了SQL搜索来查看该过程存储在哪

我的SSIS 2012包中的任务有问题。我正在创建一个包以(按顺序):

  • 截断SQL Server表中的数据
  • 通过平面文本文件填充该表
  • 然后执行一个存储过程
  • 然后将数据导出到Excel
  • 我使用的表在一个名为
    SalesQuota

    前两个任务工作正常,但我在执行包中的存储过程(通过执行SQL任务)时遇到问题。我尝试了从单击“保留相同连接”到“为真”,再到尝试在任务中写出SQL Server过程的所有方法。但我一直在犯错误。因此,我在ManagementStudio中使用了SQL搜索来查看该过程存储在哪里,它显示该过程位于服务器中的3个不同数据库中,这可能是错误的原因吗?我在谷歌上搜索并看到了一些关于将变量(?)映射到任务的信息,但我找不到过程的参数

    这就是我犯的错误

    [Execute SQL Task]错误:执行查询“Execute[dbo].[up\u client\u sp]”失败,错误如下:
    对象名称“SalesQuota.dbo.clientstatusgather”无效。
    可能的失败原因:查询问题、“ResultSet”属性设置不正确、参数设置不正确或连接建立不正确


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


    可以在SQL任务编辑器的“参数映射”选项卡上设置参数,如果SP返回任何数据,则可以使用SQL任务编辑器的“结果集”选项卡捕获数据。但是,只有当SP实际返回要捕获的结果集时,才需要执行此操作。

    SP_uuText“procname”将为您编写存储过程脚本。和使用?作为SSIS包中参数的可变空间保持器。我假设您正在使用sql任务。我还建议您使用oledb连接。

    谢谢您的回复,但我不应该使用OLE DB连接,因为在前两个任务中我使用了OLE DB连接吗?连接很好,但包在第三步总是失败,我确实将IsQueryStoredProcedure设置为true,但遗憾的是仍然没有任何区别。另外,我如何知道程序的参数是什么?当我打开过程时,过程语句附近没有@-,我读到这些是参数名称,我们对所有基本SQL执行语句使用OLEDB,但对于存储过程调用,我们使用ADO.NET连接。实际上,我不确定完整的原因(如果您愿意,您可以查找并比较)-但我收到了与您相同的错误,因为我错误地将它们设置为OLEDB。我不明白你关于参数的问题是什么。在参数映射选项卡中,您可以在一个字段中输入SSIS变量名,在另一个字段中输入SQL参数名。您知道参数的名称吗?我不确定参数的名称,我尝试通过某些代码查找它们,这些代码允许您查看过程名称等,但它总是以没有行结束,在经过服务器之后,我意识到该过程也存储在另一个服务器中。我们使用了两台服务器,一台用于测试,但它仍然有官方数据,另一台专门用于官方数据库。在正式数据库中,该过程只被发现一次,而在另一个测试数据库中,该过程被发现4次。也许我应该使用正式服务器过程?在SQL Mgt Studio中,您可以右键单击SP并选择“脚本存储过程为”-选择执行或创建,您将获得有关SP的所有信息。