MS-SQL-是否可以使用Visual Studio SSDT插件管理SQL代理作业的代码

本文关键字:SQL 管理 代理 作业 代码 插件 SSDT 可以使 是否 Visual Studio | 更新日期: 2023-09-27 18:28:29

我的数据库中有作业保存在server_agent/jobs中
有没有一种方法可以在Visual Studio 2012中使用ssdt插件来管理它们
(能够比较/更新)
谢谢

MS-SQL-是否可以使用Visual Studio SSDT插件管理SQL代理作业的代码

目前,没有好的方法来处理这个问题。作业由存储在msdb中的表中的数据组成。处理它的最佳方法是将每个作业编写到自己的文件中,然后从一个更大的文件中调用这些作业,或者为作业创建一个包含所有脚本的大文件。

我可能会考虑将每个作业编写到自己的文件中,并从更大的脚本中调用它们。从长远来看,这将更容易管理,您可以通过在主脚本中对单个作业进行注释来轻松地对其进行注释。

没有办法直接比较/更新作业,尽管您可以使用数据比较工具根据数据的某个主副本检查msdb中的各种作业表。来自RedGate的SQL数据比较可能是最好的选择,因为SSDT目前不包括数据比较功能。

话虽如此,有传言称MS正在为SSDT开发一些特定于数据的组件,但官方尚未透露这一功能。

虽然SSDT中没有直接管理SQL代理作业的内置支持,但您可以使用部署后脚本获得部署功能

当然这不是你的问题(听起来你想导入,以及比较,更改)

但是,您可以将作业的"sql"置于源代码管理之下,并使用发布或间接使用构建的DACPAC 来部署它(upstart)

要点是:创建一个sql脚本,该脚本调用msdb sp_xxx_job存储过程

sp_add_job
sp_add_jobstep
sp_add_jobschedule

当使用标记为PostDeployment脚本的脚本时,调用作业生成脚本

:r .'Jobs'MyPHATjob.sql