我正在制作SSIS 2012套餐。在foreachfile循环中,有一个变量“User :: Filename”,这个构造的一个相当标准的变量。在循环内部的后续步骤中,我将文件移动到归档目录。然后,我想重命名它。我将“Destination”属性映射到新名称,其格式为“”+“YYYYMMDDHHMMSS”+ @ [User :: Filename]。
当我在设计时点击“评估表达式”时,除了文件名为空之外,它当然有效,所以不显示。 我还将“延迟验证”设置为true。
当我运行包时,它会失败,因为它找不到源文件或目标文件(Source设置方式相同... + @ [User :: Filename]。)在错误消息中,它显示我在设计时点击“评估表达式”后得到的字符串完全相同。
为什么不显示文件名?
答案 0 :(得分:0)
使用此代码将脚本任务放入循环容器中。
public void Main()
{
bool success = false;
string fName = Dts.Variables["User::Filename"].Value.ToString();
Dts.Events.FireInformation(1, "File Loop", fName, "", 0, ref success);
Dts.TaskResult = (int)ScriptResults.Success;
}
然后在输出窗口中查看打印的列表。