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

时间:2013-08-20 11:45:54

标签: c# sql-server visual-studio-2012 sql-server-2012 sql-server-data-tools

我的数据库中的工作位于server_agent / jobs 有没有办法在Visual Studio 2012中使用ssdt插件管理它们? (能够比较/更新)
感谢。

2 个答案:

答案 0 :(得分:2)

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

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

没有办法直接比较/更新作业,但您可以使用数据比较工具检查msdb中的各种作业表与数据的主副本。 Red-Gate的SQL数据比较可能是您的最佳选择,因为此时SSDT不包含数据比较功能。

话虽如此,有传言称MS正在为SSDT开发一些特定于数据的组件,但没有任何关于此功能的官方说法。

答案 1 :(得分:1)

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

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

但是,你可以把" sql"源代码管理下的作业,并使用发布或间接使用内置的DACPAC

部署它(upsert)

要点是: 创建一个调用msdb sp_xxx_job存储过程

的sql脚本
sp_add_job
sp_add_jobstep
sp_add_jobschedule

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

:r .\Jobs\MyPHATjob.sql