Sql server 创建生成SQL Server代理作业的存储过程

Sql server 创建生成SQL Server代理作业的存储过程,sql-server,stored-procedures,sql-server-agent,Sql Server,Stored Procedures,Sql Server Agent,我很好奇这是否可行。我目前正在构建许多SQL Server代理作业。这些作业只是SFTP作业,它们在两个不同客户端的服务器之间传递文件,在我的本地服务器上进行一些预处理和后处理。是的,从一个角度来看,这种设置是不必要的复杂,但从安全角度来看是必要的。所有这些工作都具有相同的结构: SFTP将文件从client1server映射到本地服务器 在该文件上运行可执行文件 将处理过的文件SFTP到client2server 等待预定的时间,以便client2可以对输入执行查询 将响应文件从client2

我很好奇这是否可行。我目前正在构建许多SQL Server代理作业。这些作业只是SFTP作业,它们在两个不同客户端的服务器之间传递文件,在我的本地服务器上进行一些预处理和后处理。是的,从一个角度来看,这种设置是不必要的复杂,但从安全角度来看是必要的。所有这些工作都具有相同的结构:

  • SFTP将文件从client1server映射到本地服务器
  • 在该文件上运行可执行文件
  • 将处理过的文件SFTP到client2server
  • 等待预定的时间,以便client2可以对输入执行查询
  • 将响应文件从client2server映射到本地服务器
  • 对该文件运行第二个可执行文件
  • 将处理后的响应文件SFTP回client1server
  • 非常直截了当

    每个作业之间只有少数几个值会发生变化: -client1server上的输入/输出文件路径 -client2server上的输入/输出文件路径 -本地服务器上的目录

    这些工作并不复杂,所以如果必要的话,我可以手工创建它们。不过,这似乎是不必要的工作量。我曾想过,也许我可以创建一个存储过程来生成创建作业的SQL脚本,并且该存储过程可以简单地接受不同作业的变量。这是否可行

    大体上,我是这样想的:

    创建过程创建\u ftp\u接口\u作业
    @客户1输入/输出nvarchar(100),
    @客户1输出\u fp nvarchar(100),
    @客户2输入/输出nvarchar(100),
    @客户2输出量(100),
    等
    作为
    去
    
    我已经尝试过这种方法的早期版本,但在引用SSA作业脚本中存储过程定义中声明的变量时似乎遇到了问题。我来这里是想问我所尝试的是否可行,我只是有一个普通的参考错误,或者我所做的是不允许的。

    您可以使用、和以编程方式创建和管理SQL代理作业


    事实上,还有更多的存储过程与管理SQL代理作业有关。

    但是已经有sp可以这样做。它们都内置在
    msdb
    中。您需要发布您尝试过的脚本,并详细说明该问题。请注意,如果您编写了一个现有的SQL代理作业脚本,您将看到大量的参数错误,并且它工作正常。