Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调用SSIS包中变量中的存储值_Ssis - Fatal编程技术网

如何调用SSIS包中变量中的存储值

如何调用SSIS包中变量中的存储值,ssis,Ssis,全部,, 我对SSIS开发非常陌生。所以我需要帮助。 在我的一个包中,我在一个executesql任务的变量(例如:变量a)中存储了一个结果集 我需要对同一个包上的另一个执行SQL任务执行以下操作: 截断客户表(此表只有一列“性别”) 我想在“性别”列中插入变量A的值 我的SQL是这样的: TRUNCATE TABLE Customer INSERT INTO Customer Gender Select Variable A INSERT INTO Customer Gender Se

全部,, 我对SSIS开发非常陌生。所以我需要帮助。 在我的一个包中,我在一个executesql任务的变量(例如:变量a)中存储了一个结果集

我需要对同一个包上的另一个执行SQL任务执行以下操作:

  • 截断客户表(此表只有一列“性别”)
  • 我想在“性别”列中插入变量A的值
  • 我的SQL是这样的:

    TRUNCATE TABLE Customer
    
    INSERT INTO Customer
    Gender 
    Select Variable A
    
    INSERT INTO Customer Gender  Select Variable ?
    
    有人能帮我吗?我该如何设置参数


    提前谢谢

    您需要
    Foreach
    循环
    变量和SQL任务,以执行
    TRUNCATE
    INSERT
    命令。在SQL任务中,您只需在查询中添加带有
    的参数,如下所示:

    TRUNCATE TABLE Customer
    
    INSERT INTO Customer
    Gender 
    Select Variable A
    
    INSERT INTO Customer Gender  Select Variable ?
    

    并将该参数绑定到您在左菜单中的
    参数映射中迭代当前值:

    您需要
    Foreach
    循环
    变量和
    TRUNCATE
    INSERT
    命令的SQL任务。在SQL任务中,您只需在查询中添加带有
    的参数,如下所示:

    TRUNCATE TABLE Customer
    
    INSERT INTO Customer
    Gender 
    Select Variable A
    
    INSERT INTO Customer Gender  Select Variable ?
    

    并将该参数绑定到您在左侧菜单的
    参数映射中迭代当前值:

    truncate table customer
    是正确的。您在这方面有什么实际问题?为什么要将结果集加载到变量中?为什么不直接将其加载到表中?要得到答案,您应该给出一些more background并解释您为响应所做的尝试。我使用了长查询来获取结果集。为了避免在降压时再次使用相同的长查询,我只想将结果存储在一个变量中,并使用该变量值插入该表。为什么您需要“在降压时再次使用它”?我看不出任何原因要使用记录集,我的工作模式是将数据集加载到目标数据库的暂存表中,并使用T-SQL对其进行处理。这比使用记录集和SSIS代码要快得多。但是,如果必须将记录集加载到数据库中,则需要为每个ADO枚举器使用一个for-Each枚举器来逐步遍历每个记录执行SQL任务以插入行。这里有一些类似的操作,但您需要使用执行SQL任务,而不是DFT:。同样,这不是您应该使用的方法,尽管
    truncate table customer
    是正确的。您对此有什么实际问题?为什么要将结果集加载到变量中?为什么不直接将其加载到表?若要获得此问题的答案,您应该提供更多的背景信息,并解释您为响应尝试了哪些方法。我使用了长查询来获取结果集。为了避免在下一步中再次使用相同的长查询,我只想将结果存储在一个变量中,并使用该变量值在该表上插入。为什么需要要“在降级时再次使用它”?我看不出有任何理由使用记录集。对我来说,有效的模式是将数据集加载到目标数据库的暂存表中,并使用t-SQL进行处理。这比使用记录集和SSIS代码要快得多。但如果必须将记录集加载到数据库中,则需要为每个ADO枚举使用这是一个类似的例子,但您需要使用一个执行SQL任务,而不是DFT:。同样,这不是您应该使用的方式,尽管这是我一直在寻找的。谢谢大家的帮助。这是我一直在寻找的。谢谢大家的帮助。