SSIS执行SQL任务存储过程返回空结果集

时间:2015-06-05 09:55:48

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

我有一个简单的存储过程,它返回包含3列的1行。我正在尝试创建一个SSIS包,以后再重用这些列中的值。如果我运行一个简单的选择查询,一切都很高兴,但是当我运行存储过程时,我收到以下错误:

  

[执行SQL任务]错误:执行查询“rs_UpdateMemberExtract”   失败,出现以下错误:“无法填充结果列   对于单行结果类型。查询返回一个空结果集。“   可能的失败原因:查询问题,“ResultSet”   属性设置不正确,参数设置不正确,或   连接未正确建立。

我已经设置了一个ado.net连接并且在SSMS中正确运行了proc,我的任务设置如下:

ConnectionType: ADO.NET
Connection: ServerName.connectionName
SQLSourceType: Direct Input
SQLstatment: Name of Proc (rs_UpdateMemberExtract)
IsQueryStoredProcedure: True

我将每个参数映射到变量,并将方向设置为Output

我有应该在结果集中返回并映射到关联变量的每列的名称。

如果我将ResultSet设置为'None',

,则该任务有效

任何想法我错过了什么?

由于

1 个答案:

答案 0 :(得分:0)

如果SQL任务编辑器期望连续返回结果...但是没有要返回的记录,则以下SQL使用空格填充空返回值。注意:如果期望数字“返回行”,也可以用于返回零

SELECT '' + ISNULL ((SELECT x FROM y WHERE (z = ?)), '') AS  myfield