Eu tenho um pacote SSIS que preenche um depósito de relatórios de um ambiente ao vivo e de teste.
Atualmente, o pacote tem cada etapa duplicada à medida que a conexão de origem muda entre live e test. Esta é uma dor para manter se as mudanças forem necessárias.
Eu sei que posso enviar um valor de variável para o pacote por meio do trabalho do agente.
Eu queria saber se eu poderia cortar o pacote para que as etapas apareçam apenas uma vez. O trabalho do agente pode ter duas etapas que executam o pacote. Por exemplo, o primeiro passo executa o pacote e o conjunto de variáveis é o nome do banco de dados ativo e o segundo passo executa o pacote novamente, mas o conjunto de variáveis é o nome do banco de dados de teste.
Você pode selecionar dinamicamente uma conexão com base em uma variável recebida?
Há um método melhor?
Obrigado
Você deseja incorporar variáveis de ambiente em seus pacotes SSIS. Configure o trabalho do agente para usar diferentes variáveis de ambiente.
Você pode definir as variáveis em cada etapa do seu trabalho de agente. Se você criar vários ambientes SSISDB na pasta do projeto, eles poderão usar ou armazenar diferentes variáveis para executar seus pacotes SSIS.
Referência: https://www.mssqltips.com/sqlservertip/4810/setup-environment-variables-in-sql-server-integration-services/
Ok, sim, você pode como eu descobri.
Criei uma variável no pacote chamada DB e tipo de dados como string.
Criou uma conexão no gerenciador de conexões, mas deixe o banco de dados em branco.
Nas propriedades da conexão selecione "Expressões". Na caixa de diálogo pop-up, selecione InitialCatalog no menu suspenso em "Property" e coloque @[User::DB] como o valor "Expression".
No trabalho do agente, defina o "Caminho da propriedade" na guia "definir valores" como \Package.Variables[User::DB].Value e defina o "valor" como o nome do banco de dados ativo.
Em seguida, crie uma segunda etapa e copie a etapa acima, mas defina o valor como o nome do banco de dados de teste.
Muito Obrigado