Eu tenho o que é efetivamente um modelo de pacote SSIS (na verdade, um plano de manutenção) que é copiado e usado como base para novos planos de manutenção.
Neste pacote existe uma Sequência (ou um sub-plano) contendo uma série de tarefas.
Sei que posso alterar o ID do pacote em BIDS, ou seja:
No entanto, não consigo alterar o ID da sequência do subplano, o ID está esmaecido:
Nem os BIDS para SQL Server 2005 ou 2008(R2) me permitem alterar este valor.
Existe uma maneira de conseguir isso?
Justificativa:
Para lhe dar algumas informações, esses pacotes são instalados automaticamente em um servidor usando dtutil
. Um script é então executado para criar um trabalho do SQL Agent para o pacote. Parte desse script executa um procedimento armazenado do sistema MSDB chamado msdb.dbo.sysmaintplan_subplans
. Este procedimento armazenado é usado para unir os pontos entre um trabalho, um plano e um subplano.
Por exemplo:
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
é o ID do pacote e @subplan_id
é a sequência ou ID do subplano conforme mostrado nas capturas de tela acima.
sysmaintplan_subplans
adiciona um registro à tabela msdb.dbo.sysmaintplan_subplan
, porém a chave primária é o subplan_id
. É por isso que preciso alterar o ID do subplano no BIDS.
Veja BIDSHelper . Ferramenta fantástica e gratuita que todos que desenvolvem SSIS e provavelmente SSAS deveriam usar.
Redefinir GUIDs
"Este recurso redefine os IDs para todas as tarefas, gerenciadores de conexões, configurações, manipuladores de eventos, variáveis e o próprio ID do pacote. Quando você copia um pacote, os objetos em ambos os pacotes terminam com os mesmos IDs. Esse recurso Redefinir GUIDs garante que o IDs no pacote atual são únicos."