我写了一个FOREACH,循环遍历文件夹中的所有文件,并将我的表f_actuals与没有扩展名的文件名一起更新 - 这个文件名是PeriodKey和Business Unit的组合。效果很好。
但是,这是每天从我们的系统上传每个业务部门的整个月(所以每月更新每天刷新,直到我们关闭那个时期),所以我真正需要的是FOREACH到包含以下内容: -
我知道这可能是一种效率极低的方法(首选是每日增量上传),但文件需要是按月更新的,因为我们的系统无法轻易提供其他任何内容。
希望这是有道理的。
非常感谢任何帮助。
答案 0 :(得分:1)
您可以在For Each循环中使用执行SQL任务来执行此操作。
您可以使用SQL语句:
DELETE
FROM f_actuals
WHERE filename = ?
或许是一个存储过程(接受你的文件名作为参数并做与上面的陈述相同的事情),例如:
EXEC DeleteFromActuals ?
对于循环中的每个文件名,您可以将其存储在变量中,并将该变量作为参数传递给执行SQL任务(这就是?
)。
要在“执行SQL任务”中映射参数,请转到“参数映射”,然后添加新参数。从下拉列表中选择包含文件名的变量,选择数据类型VARCHAR
,并将“参数名称”设置为0.“方向”应为“输入”,这是默认值。