代码之家  ›  专栏  ›  技术社区  ›  Nicolas De Irisarri

Sql server集成服务2008-2005兼容性

  •  10
  • Nicolas De Irisarri  · 技术社区  · 15 年前

    我最近在我的开发人员机器上使用2008版本开发了一个SSIS包。 后来我发现客户有SQLServer2005,不打算很快升级。

    有没有办法像降级向导一样将2008包转换为SSIS 2005包?

    6 回复  |  直到 15 年前
        1
  •  14
  •   lstanczyk    14 年前

    我们有一个应用程序可以将SSIS包从2008年版本降级到2005年。

    虽然它可以和公共组件一起工作,但除了查找之外,不支持任何新组件。

    它经过了非常有限的测试,不是MS支持的选项。不建议在生产包中使用此选项。

    http://ssisdowngrade.codeplex.com

        2
  •  3
  •   Mutation Person    10 年前

    可能有2008年可用的组件和属性在2005年不可用。这就是为什么转换如此困难的原因。

    然后手动编辑该文件

    1.更改以下内容:

    <?xml version="1.0"?><DTS:Executable xmlns:DTS="www.microsoft.com/SqlServer/Dts" DTS:ExecutableType="SSIS.Package.2">
    

    <?xml version="1.0"?><DTS:Executable xmlns:DTS="www.microsoft.com/SqlServer/Dts" DTS:ExecutableType="SSIS.Package.1">
    

    2.更改以下内容:

    <DTS:Property DTS:Name="PackageFormatVersion">3</DTS:Property>
    

    <DTS:Property DTS:Name="PackageFormatVersion">2</DTS:Property>
    

    3.拆下以下部件:

    <DTS:Property DTS:Name="LastModifiedProductVersion">10.0.1600.22</DTS:Property>
    

    <DTS:Property DTS:Name="CreationName">SSIS.Package.2</DTS:Property>
    

    <DTS:Property DTS:Name="CreationName">MSDTS.Package.1</DTS:Property>
    

    这适用于空包,但我不能保证其他任何包。 希望这有帮助

        3
  •  2
  •   user306854    14 年前

    2008版本中OLE DB源的正确ClassID为{BCEFE59B-6819-47F7-A125-63753B33AB7}。必须将其更改为{2C0A8BE5-1EDC-4353-A0EF-B778599C65A0},以便在2005年使用。

    对于条件拆分任务,将{3AE878C6-0D6C-4F48-8128-40E00E9C1B7D}更改为{53A228EE-EBFA-48D6-A1AC-5269E5824A2C}。

    除了已经发布的更改之外,这些更改应该对大多数用户起到作用,或者至少可以在2005年版本中以较少的工作量重建包。

        4
  •  2
  •   Asgeir Gunnarsson    13 年前

        5
  •  1
  •   Anthony B.    14 年前

    您还需要替换以下内容:

    • OLE DB命令:{8E61C8F6-C91D-43B6-97EB-3423C06571CC}与{C60ACAD1-9BE8-46B3-87DA-70E59EADEA46}

        6
  •  0
  •   rfonn    15 年前

    不幸的是,我认为这是不可能的。我知道一个事实,如果您的包中有任何脚本任务和/或组件,那么在降级到SSIS 2005时DLL将不兼容,因为2008使用.NET 3.5 Framework,2005使用2.0 Framework。