将现有 DSTX SSIS 包从 SQL Server 2005 迁移到 2008 R2 并自动化的方法





1.00/5 (1投票)
本文将为将无错误 dtsx 包迁移到更高版本 SQL Server SSIS 提供第一步。
目录
1.引言
本文的目标是帮助开发人员创建自动化组件,用于涉及将现有的 dtsx 包从 Sql Server 2005 迁移到 SQL Server 2008 R2 的任务。 想法是展示给定 dtsx 包可能需要进行更改的最常见的迁移。 唯一的方法是更改包中变量的设置属性,并以 xml 格式保存 dtsx。
2. 实时场景
3. 先决条件
4. 代码实现
在控制台应用程序中添加程序集 Microsoft.SqlServer.ManagedDTS
的引用。 需要从 SQl Server 安装集成服务组件才能获取此 dll。 使用以下代码,可以更改在开发过程中添加的 dtsx 包的变量属性。
using Microsoft.SqlServer.Dts.Runtime;
namespace UpdateDTSX_SSIS_Properties_Pkg
{
class Program
{
static void Main(string[] args)
{
//Physical path of dtsx package
string dtsxOld = @"D:\Test2005.dtsx";
string dtsxUpgrade = @"D:\Test2008.dtsx";
//Load package
Application app = new Application();
Package packageDTSX = app.LoadPackage(pkg, null);
// Set properties value as required
DTSProtectionLevel dtsProtectionLevel1 = packageDTSX.ProtectionLevel;
Console.WriteLine("Old ProtectionLevel Encypted One = " + dtsProtectionLevel1);
//Change protectionlevel from EncryptSensitiveWithUserKey To DontSaveSensitive
packageDTSX.ProtectionLevel = DTSProtectionLevel.DontSaveSensitive;
app.SaveToXml(dtsxUpgrade,packageDTSX,null);
DTSProtectionLevel dtsProtectionLevel2 = packageDTSX.ProtectionLevel;
Console.WriteLine("New ProtectionLevel DontSaveSensitive = " + dtsProtectionLevel2);
Console.ReadLine();
}
}
}
目前就到这里为止,使用上述方法可以更改所需的 dtsx 包属性,并将 dtsx 文件保存为 xml 格式。
5. 参考资料
http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.application.upgrade.aspx
http://msdn.microsoft.com/en-us/library/ms188550.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.dtsprotectionlevel.aspx
6. 结论
我尽量使本文简短,并将其作为开始将 dtsx 转换从一个版本到另一个版本的自动化的参考。 如果有任何意见或疑问,请发表评论。