是否可以在没有xp_cmdshell的情况下从SQL服务器上传ftp文件?

时间:2017-03-21 18:00:41

标签: sql-server tsql ftp

理想情况下,希望从SQL查询或SQL代理作业运行某些内容到FTP将文件上传到外部站点,但不能使用xp_cmdshell。

1 个答案:

答案 0 :(得分:1)

是。您需要将工作分成两个单独的任务:

  1. 如何在不依赖xp_cmdshell的情况下从SQL Server中运行可执行文件或批处理程序 如何做到这一点的一个例子可以在: https://www.mssqltips.com/sqlservertip/2014/replace-xpcmdshell-command-line-use-with-sql-server-agent/
    您应该修改此示例以满足您的特定需求。建议的存储过程将:
    • run命令作为创建的即时SQL作业中的参数传递(表示CmdExec子系统)
    • 等待SQL作业完成(查询msdb.dbo.sysjobactivity)或在达到预定义超时值时终止作业
    • 返回作业执行结果(查询msdb.dbo.sysjobhistory)
    • 删除作业
  2. 注意:需要完整版的SQL Server。如果您使用的是快速版本,则必须手动定义Windows计划任务。

    1. 如何使用批处理程序通过ftp发送文件 请参阅:
      How to ftp with a batch file?