【问题标题】:How do I create an SSIS package that executes a bat file如何创建执行 bat 文件的 SSIS 包
【发布时间】:2017-06-05 17:11:49
【问题描述】:

我正在尝试使用 SSIS 包在 SQL Server Management Studio 中创建作业以执行 bat 文件。 bat 文件启动 FTP 传输以及文件重命名和归档。我已经测试了 bat 文件,它在所有步骤完成后都能正常执行。我遇到的问题是 SSIS 包。我不是 Visual Studio 的频繁用户,所以很可能我忽略了一些东西。在控制流选项卡上,我添加了一个“执行流程任务”。我指定了 bat 文件的文件路径和工作目录。我根据我们现有的也执行 bat 文件的其他现有作业验证了此设置。当我告诉作业运行时,它说它已成功完成,没有错误。当我手动验证结果时,bat文件并没有被执行。我不知道我在这里俯瞰什么。 SSIS 包和 bat 文件驻留在同一台服务器上,并且存在用于文件传输的适当共享。任何关于我可能错过的想法都将不胜感激。

【问题讨论】:

  • 在VS中运行进程是否执行成功?
  • 检查bat文件所在的文件夹权限。几乎可以保证 SQL 作业代理没有运行 bat 的权限。
  • 嗨亚伦。我们还有其他作业在同一个文件夹中运行 bat 文件,所以不是权限问题。
  • 嗨雅各布。不,但那是因为它正在访问的包和文件位于与 VS 所在的服务器不同的服务器上。我无法告诉你为什么,我继承了这个网络。
  • 你是如何指定文件路径和bat文件的?它们是 UNC,例如 \\server-name\shared-resource-pathname。 VS和文件是否在同一台服务器上并不重要。在工作中使用之前,您应该始终在 VS 中测试 SSIS 包。

标签: sql-server visual-studio batch-file ssis


【解决方案1】:

为什么?为什么不使用提供的 FTP 任务在 SSIS 中执行此操作?此外,您可以使用文件系统任务进行所有文件重命名。

FTP 任务:https://docs.microsoft.com/en-us/sql/integration-services/control-flow/ftp-task

文件系统任务:https://docs.microsoft.com/en-us/sql/integration-services/control-flow/file-system-task

在最新评论后更新:

如果内置组件不适合您,您是否考虑过第三方组件,例如https://winscp.net/eng/docs/guide_ssis

该组件似乎使用 WinSCP 作为后端

【讨论】:

  • 嗨,瑞秋。感谢您的想法,我将不得不阅读它。我以前从未尝试过。几乎所有执行 ftp 的工作都是从这里的 bat 文件中驱动的。
  • 阅读后,我发现内置的 ftp 并不安全。对于我们的行业,我们必须使用安全的 ftp,这显然是我们现有的所有 ftp 作业都使用 bat 文件来执行 ftp 程序的原因。
  • 我更新了我的答案以获得另一种可能性。就个人而言,我总是尽可能远离执行批处理文件。但是,您自己可能无法避免这种情况。
  • Rachel,这与我们现有的设置几乎相同。我们使用 WinSCP.com 而不是 exe,但本质上以相同的方式调用它。到目前为止没有问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
  • 2020-07-25
  • 2020-11-23
相关资源
最近更新 更多