路径中可用时文件上传到 table

File Uploading To table when Available in Path

我必须设计一个 SSIS 包来加载平面文件 只要它可用 从路径到数据库的 table。 我怎样才能在生产中实现它请建议。

我使用SQL代理来执行它。是否可以仅使用 sql 或 C#,WITHOUT 任何第三个 派对工具。 ?

谢谢

我在下面创建了一个教程。最后,在部署您的包后,您可以在 SSMS 中创建一个作业,它将 运行 在指定的时间执行您的包。

要完成此 objective,需要完成以下任务。 1. Foreach 循环容器: 遍历用户配置的文件目录。 2. 表达式任务:如果文件存在则更新变量。

步骤 1. 首先转到 Solution Explorer 双击 Project.params 并创建参数 FolderPath键入字符串,将值设置为 E:\DataDir\SourceFiles。 2. 创建用户变量 FileNameFromFolder (String), FileToSearch (String) 分配要检查的值并创建变量 IsFound(布尔值)。 3. 从容器部分下的 SSIS 工具箱中拖放 Foreach Loop Container。 4. 双击 Foreach Loop Editor 左侧的 Foreach Loop Container 单击 Collection。在右侧将 Enumerator 设置为 Foreach File Enumerator,现在对于表达式,单击三个点,这将打开 属性 表达式编辑器。 Select 目录为 属性 和表达式 select @[$Project::FolderPath]。单击确定。 5. 现在在 Foreach Loop Editor 中为 Files 的值设置 *.txt,为 Retrieve file name 的值select Name只是,通常我们 select 完全合格,因为它 returns 具有完整路径的文件名。检查 遍历子文件夹 如果一个文件夹中可以有多个文件夹。 6.左边selectVariable Mappings,右边selectUser::FileNameFromFolder里面会自动得到索引为 0。 FolderPath 中的文件名将被一一分配给 FileNameFromFolder 变量。单击确定。 7. 从 Common[=50 部分下的 SSIS 工具箱中,将 Expression Task 拖放到 Foreach Loop Container 中=].
8. 双击 Expression Task,在 Expression Builder 中编写以下代码。单击“确定”。

@[User::IsFound] =  @[User::FileNameFromFolder] == @[User::FileToSearch] ? TRUE : FALSE

9. 上面的代码将我们要检查的文件名与文件夹中的文件名进行比较,如果两者都匹配,则将 IsFound 设置为 True(文件存在)。 10、现在IsFound的值可以根据需要使用优先约束。