所以我在这里对SSIS很新。我有一些字段,我真的想为我的软件包全局设置,而不是继续使用数十个SSIS任务进行finagle。我正在以编程方式执行此操作,并了解到您可以设置这些调用包,如下所示:
SET @ExecuteStatement=
'C:\Program Files\Microsoft SQL Server\120\DTS\Binn\DTExec /f "\\' + @DBInstance + '\SSIS\Universal.dtsx"
/set \Package.Variables[User::Email].Properties[Value]; "' + @Email + '"
/set \Package.Variables[User::SSASServer].Properties[Value]; "' + @SSASServer + '"
/set \Package.Variables[User::MSSQLServer].Properties[Value]; "' + @MSSQLServer + '"
/set \Package.Variables[User::SSASDatabaseName].Properties[Value]; "' + @SSASDatabaseName + '"
/set \Package.Variables[User::LinkedServerAlias].Properties[Value]; "' + @LinkedServerAlias + '"
/set \Package.Variables[User::ThreadCount].Properties[Value]; ' + CAST(@ThreadCount AS VARCHAR);
INSERT INTO @LOG
EXEC @returncode = xp_cmdshell @ExecuteStatement
我的理解是,这将在包级别设置那些User ::变量的范围。我有几十个SQL执行任务,类似地调用SQL脚本,我真的想通过这些参数。显然这些SSIS变量在运行时设置,因此任何引用@ [User :: Email]的sproc最终都是未定义的。
如何确保任务(执行SQL和邮件)可以访问这些变量,以便每个包在用户运行时都是独立的?我正在尝试避免可以覆盖的全局变量,以便多个人可以运行它并根据需要配置字段。
提前致谢!