【发布时间】:2014-06-09 08:19:50
【问题描述】:
我的执行 SQL 任务失败有这个问题。我正在尝试使用执行 sql 任务执行 sp。执行语句包含在我在包级别声明的变量 (exec [sp_name] par1, par2) 中。现在在 exec sql tak 中,我调用了这个变量。现在,当我尝试执行此任务时,它失败了,我得到以下信息:
[Execute SQL Task] Error: Executing the query "EXEC CTL_ISRT_A 55,1" failed with the following error:
"Could not find stored procedure 'CTL_ISRT_A'.". Possible failure reasons: Problems with the query,
"ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
数据库中有一个名为“CTL_ISRT_A”的存储过程,我可以从 SQL Server 执行它。这个 sp 在表中插入一个新行,它返回@@IDENTITY。基本上我需要在插入变量后存储一个整数值。
我尝试将结果集设置为“单行”并尝试将值分配给变量,但没有帮助。有人可以帮我吗?
提前致谢
【问题讨论】:
-
组件配置有问题。您能否发布带有 SQL 任务中每个选项卡的屏幕,因为有几个错误可能会导致此错误。至于现在,您是否尝试使用“CTL_ISRT_A”的“dbo.CTL_ISRT_A”?
-
我尝试在没有变量的情况下执行存储过程,但它仍然给我同样的错误。
-
我的意思是 proc 名称之前的“dbo”。请注意,错误中有:EXEC CTL_ISRT_A 55,1,因此这意味着您的变量正在发送并且可以访问。问题在于过程名称或结果集。
-
变量内部,sp名称前没有“dbo”。我需要添加吗?而且我确信 proc 名称是正确给出的。正如我之前所说,如果我取变量(EXEC CTL_ISRT_A 55,1)的值并在sql server中运行它,它就可以工作!在 exec sql 任务中,我使用 Variable 作为 SQLSourceType 并选择了我创建的这个变量。在结果集页面中,我选择了另一个变量来保存表中的标识(结果集名称是插入行的表中的列名)
-
我已经上传了屏幕截图
标签: sql sql-server ssis