将存储过程中的表作为完整结果集返回(然后将其作为对象传递给脚本任务)

时间:2018-04-12 08:52:21

标签: sql sql-server stored-procedures ssis

我有一个返回表的程序(名称" ValidationResultTbl"):

sin

我使用sql-task在SSIS中执行存储过程: enter image description here

在Result Set选项卡中,我将接收结果的变量设置为ValidationResult(type object):

enter image description here

然后我添加一个脚本任务,该任务应该连接ValidationResult表的第一列的值:

cosine

(任务脚本编辑器:) enter image description here

它没有按预期工作,当我调试时,我看到应该保存表的对象实际上是空的。

我已经尝试更改过程以返回单个字符串行,然后在脚本任务中使用它并且没有问题所以我假设问题与该问题有关SQL任务没有正确检索表或没有正确地将它传递给脚本任务。

1 个答案:

答案 0 :(得分:0)

不确定这是否是您的问题但是对于SSIS(取决于SQL服务器的版本)有问题从临时表或表变量中获取结果集,在脚本任务中您需要执行类似这样的操作来识别列和返回的数据类型:

EXEC SP_CM_ValidateInput 
WITH RESULT SETS
(
 ( 
  ValidationDescription VARCHAR(100), 
  ErrCnt INT
 ) 
) 
GO

WITH RESULT SET的详情: https://www.mssqltips.com/sqlservertip/2356/overview-of-with-result-sets-feature-of-sql-server-2012/