我有两张excel文件。我需要做什么:
将#3中的数据和#1中的id传递给存储过程并执行它。
该图读取带有用户数据的第二张纸并传递给存储过程。
但是我不明白如何将它组合成一个方案以使1-4工作。
答案 0 :(得分:1)
所以...如果我认为我正确理解了您的问题...您要做的是将Excel ID值存储在变量中,然后将其作为派生列添加到第2部分中的数据流中。 / p>
所以你的包应该是这样的:
执行SQL任务
ConnectionType EXCEL,Connection是您的Excel连接,Result Set是“Single row”,SQL Statement是“从[SheetNameWithDataSourceIDGoesHere $]中选择前1 *”。结果集将结果名称“0”映射到变量名称(我们称之为User :: DataSourceID。)
DATA FLOW TASK
消息:Excel表格
DERIVED COLUMN:将其称为DataSourceID,值为User :: DataSourceID。
查看:反对您查找数据源的任何地方。无匹配输出将进入数据转换和存储过程。
如果您想获得想象,可以在第一个之后包含第二个 Excecute SQL Task ,使用 SQLStatementSource 的表达式对包含的数据库表运行数据源ID。
类似的东西:
"select count(1) as DataSourceIDExists from DATASOURCELOOKUPTABLE where DataSourceID = " + (DT_WSTR,50)@User::DataSourceID
然后将其映射到“单行”ResultSet,结果名称“0”映射到 User :: DataSourceIDExists 。然后在该任务之后,使用表达式为
的优先约束(User::DataSourceIDExists == 0)
确定您是否转到数据流任务以加载Excel数据。既然听起来你还不是一个全面的SSIS专家,这可能是一个很好的学习机会。