【问题标题】:MS-SQL - Is it possible to manage the code of sql agent jobs using the Visual Studio SSDT plugin?MS-SQL - 是否可以使用 Visual Studio SSDT 插件管理 sql 代理作业的代码?
【发布时间】:2013-08-20 11:45:54
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    话虽如此,有传言称 MS 正在为 SSDT 开发一些特定于数据的组件,但官方并未对此功能发表任何声明。

    【讨论】:

      【解决方案2】:

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

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

      但是,您可以将作业的“sql”置于源代码控制之下,并使用发布或间接使用已构建的 DACPAC 进行部署(更新插入)

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

      sp_add_job
      sp_add_jobstep
      sp_add_jobschedule
      

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

      :r .\Jobs\MyPHATjob.sql
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-16
        • 1970-01-01
        • 1970-01-01
        • 2013-04-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多