【问题标题】:Sql Server Agent Job - Adding Version NumberSql Server 代理作业 - 添加版本号
【发布时间】:2013-03-14 13:56:52
【问题描述】:

我使用 sql server 2008 r2 dmvs 和 dmfs 创建了一个监控工具。我通过 tsql 为它创建了一个 sql server 作业,有 9 个步骤将其部署到客户端站点。

我的问题是找到一种方法以某种方式包含与作业一起存储的版本,以便我知道何时升级作业以进行下一次部署。任何想法如何做到这一点?

提前致谢!

【问题讨论】:

    标签: sql-server-2008-r2 sql-agent-job


    【解决方案1】:

    您可以像这样向数据库对象添加自定义属性:

    EXEC sp_addextendedproperty
        N'YourProperyName', N'SomeValue',
        N'SCHEMA', N'dbo',
        N'TABLE', N'MyTable'
    

    但我不知道它是否适用于工作。 或者也许使用工作的描述字段:

    select top 10 * from msdb.dbo.sysjobs
    

    【讨论】:

      【解决方案2】:

      您可以使用 sp_addextendedproperty 对 msdb.dbo.sysjobs 表或列进行版本化(例如 version_number);但是,您不能对特定记录执行此操作。由于扩展属性值的 TYPE 是 SQLVARIANT,因此您可以将 XML 存储在 msdb.dbo.sysjobs 表中,描述所有作业的版本。

      或者您可以简单地在您的数据库中创建一个表并存储 job_id (GUID) 和您当前的版本号 - 一个自定义解决方案。

      对于它的价值,这里是您如何使用 sp_addextendedproperty 在 sysjobs 表上添加、查看、更新和删除扩展属性的方法。我走到了 COLUMN,但你可以在桌子上停下来:

      --Add the 'Version' extended property to msdb.dbo.sysjobs.[version_number] column.
      EXECUTE sp_addextendedproperty N'Version', '1.0.0.0', 'SCHEMA', N'dbo', 'TABLE', N'sysjobs', 'COLUMN', N'version_number';
      
      --Update the 'Version' extended property
      EXECUTE sp_updateextendedproperty N'Version', '1.0.0.2', 'SCHEMA', N'dbo', 'TABLE', N'sysjobs', 'COLUMN', N'version_number';
      
      --View the current value of 'Version'
      SELECT objtype, objname, name, value
      FROM fn_listextendedproperty(N'Version', 'SCHEMA', N'dbo', 'TABLE', N'sysjobs', 'COLUMN', N'version_number');
      
      --Drop the 'Version' extended property
      EXECUTE sp_dropextendedproperty N'Version', 'SCHEMA', N'dbo', 'TABLE', N'sysjobs', 'COLUMN', N'version_number';
      

      【讨论】:

        【解决方案3】:

        您不能使用 sp_addextendedproperty 来保存作业中的版本号

        [ @level1type= ] { 'level1_object_type' }

        是级别 1 对象的类型。 level1_object_type 是 varchar(128),默认为 NULL。有效输入为 AGGREGATE、DEFAULT、FUNCTION、LOGICAL FILE NAME、PROCEDURE、QUEUE、RULE、SYNONYM、TABLE、TABLE_TYPE、TYPE、VIEW、XML SCHEMA COLLECTION 和 NULL。 Source

        这样做需要将“level1_object_type”的值更改为“JOB”,这不是一个选项。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-12-07
          • 2017-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-05-02
          • 1970-01-01
          相关资源
          最近更新 更多