Sql-Server
在 SQL 2005/8 Business Intelligence Development Studio 中生成新的子計劃/序列 ID
我有一個有效的模板 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 是唯一的。”