在SSIS中的不同包之间继承TargetDB
我有一个多层SSIS项目。基本结构如下:在SSIS中的不同包之间继承TargetDB,ssis,Ssis,我有一个多层SSIS项目。基本结构如下: |-- Package level 0 (MASTER package that contains references to other packages) |-- Package level 1 (contains references to another package) |-- Package level 1.1 (execute sql task nodes and dataviewers package 1.1 s
|-- Package level 0 (MASTER package that contains references to other packages)
|-- Package level 1 (contains references to another package)
|-- Package level 1.1 (execute sql task nodes and dataviewers package 1.1 specific)
|-- Package level 1 (contains references to another package)
|-- Package level 1.2 (execute sql task nodes and dataviewers package 1.2 specific)
...
现在,为了使我的项目能够工作,我需要在每个包中定义连接管理器OLE DB(TargetDB)。我不喜欢这种方法,因为随着软件包数量的增加,需要调整的数量也会增加
我只想在MASTER(0级)上定义TargetDB一次。有什么解决办法吗 是-创建并映射。部署时,它需要为每个包映射,但只需要在环境中维护一次
您没有提到您正在运行的版本-这适用于SQL2012以后的版本。是-创建并映射一个。部署时,它需要为每个包映射,但只需要在环境中维护一次
您没有提到正在运行的版本-这适用于SQL2012以后的版本。由于VS版本(2010)的原因,我无法创建环境变量,因此我决定:
string fileText;
try
{
fileText = System.IO.File.ReadAllText(Dts.Variables["User::TargetDB_CurrentFile"].Value.ToString());
fileText = fileText.Replace("PUT DB NAME HERE", Dts.Variables["User::TargetDB_Name"].Value.ToString());
System.IO.File.WriteAllText(Dts.Variables["User::TargetDB_CurrentFile"].Value.ToString(), fileText);
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.TaskResult = (int)ScriptResults.Failure;
throw ex;
}
finally
{
fileText = null;
}
Dts.TaskResult = (int)ScriptResults.Success;
感谢这种方法,我可以立即设置我的所有.dtsx包。我觉得很方便。同样的逻辑也可用于设置任何重复变量 由于VS版本(2010)的原因,我无法创建环境变量,因此我决定:
string fileText;
try
{
fileText = System.IO.File.ReadAllText(Dts.Variables["User::TargetDB_CurrentFile"].Value.ToString());
fileText = fileText.Replace("PUT DB NAME HERE", Dts.Variables["User::TargetDB_Name"].Value.ToString());
System.IO.File.WriteAllText(Dts.Variables["User::TargetDB_CurrentFile"].Value.ToString(), fileText);
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.TaskResult = (int)ScriptResults.Failure;
throw ex;
}
finally
{
fileText = null;
}
Dts.TaskResult = (int)ScriptResults.Success;
感谢这种方法,我可以立即设置我的所有.dtsx包。我觉得很方便。同样的逻辑也可用于设置任何重复变量 您好,我使用的是Visual Studio 2010,在这个版本中有这样做的选项吗?您好,我使用的是Visual Studio 2010,在这个版本中有这样做的选项吗?