如何使用 TSQL 或 SQL 服务器代理从 SFTP 获取文件?

How to get files from SFTP using TSQL or SQL Server Agent?

我需要从 SFTP 获取文件并将它们存储在服务器上。有什么方法可以使用 TSQL 或 SQL 服务器代理来做到这一点?我不想使用第三方工具或 SSIS 或 PowerShell 脚本或 WinSCP。

首先安装WinSCP。在我的环境中,它位于我们经常发送的 SQL 服务器上。

然后您需要创建一个文本文件来编写命令脚本。这个文件的内部看起来像

option batch abort
option confirm off
open sftp://Username:Password@someftp.someftp.com -hostkey="ssh-rsa 2048 29:fd:bb:27:3z:f0:28:b0:58:8g:07:59:b8:21:19:c4"
put D:\exports\*.csv
exit

有关 WinSCP 脚本的更多信息,您可以访问 HERE

接下来创建一个作业并在步骤中输入 Operating system (CmdExec)。在命令部分调用 Winscp.exe 的位置并将您在上一步中创建的脚本文件的路径作为参数传递。

C:\Program Files (x86)\WinSCP\WinSCP.exe /script=d:\exports\sftp.txt