Sql-Server

在 SQL 2005/8 Business Intelligence Development Studio 中生成新的子計劃/序列 ID

  • February 2, 2021

我有一個有效的模板 SSIS 包(實際上是一個維護計劃),它被複製並用作新維護計劃的基礎。

在這個包中有一個包含許多任務的序列(或子計劃)。

我知道我可以在 BIDS 中更改包裹的 ID,即:

在此處輸入圖像描述

但是我無法更改子計劃序列的 ID,ID 顯示為灰色:

在此處輸入圖像描述

SQL Server 2005 或 2008(R2) 的 BIDS 都不允許我更改此值。

有沒有辦法做到這一點?

理由:

為您提供一些背景知識,這些軟體包會自動安裝在使用dtutil. 然後執行一個腳本來為包創建一個 SQL 代理作業。該腳本的一部分執行名為msdb.dbo.sysmaintplan_subplans. 此儲存過程用於連接作業、計劃和子計劃之間的點。

例如:

EXEC @ReturnCode = msdb.dbo.sp_maintplan_update_subplan
    @subplan_id = @thesubplanid,
    @plan_id = @theplanid,
    @name= @subplanname,
    @description = 'Created by Provisioner',
    @job_id = @jobid,
    @schedule_id = @jobscheduleid_out,
    @allow_create = 1

@plan_id是包 ID,@subplan_id是序列或子計劃 ID,如上面的螢幕截圖所示。

sysmaintplan_subplans向表中添加一條記錄msdb.dbo.sysmaintplan_subplan,但主鍵是subplan_id. 這就是為什麼我需要能夠在 BIDS 中更改子計劃的 ID。

看看BIDSHelper。每個開發 SSIS 和可能 SSAS 的人都應該使用的神奇的免費工具。

重置 GUID

“此功能重置所有任務、連接管理器、配置、事件處理程序、變數和包 ID 本身的 ID。當您複製包時,兩個包中的對象最終具有相同的 ID。此重置 GUID功能可確保目前包中的 ID 是唯一的。”

引用自:https://dba.stackexchange.com/questions/12975