可以将 SSIS 2012 包部署到 SQL Server 2008 R2 吗?

Can a SSIS 2012 package be deployed to SQL Server 2008 R2?

我在 VS2013 中构建了一个 SSIS 包,但找不到任何部署说明。一个人提到他认为你不能向后部署。所以在BIDS 2008中重建包之前,我想确保没有办法部署。

几乎 none 的 MS BI 堆栈(SSIS、SSRS、SSAS)是向后兼容的,这意味着您不能在较新的环境中开发并部署到较旧的 SQL 服务器。

如果你仔细想想,就很容易理解为什么:

SSIS 包、SSRS 报告和 SSAS 数据库都有一个共同点。它们都是惰性 XML 文件。用记事本打开一个,你会看到 XML。尝试执行一个,什么也不会发生。好吧,它可能会尝试打开 Visual Studio,或者任何与其文件扩展名关联的内容,但重点是,它不能像 .exe 文件那样自行执行。

执行 SSIS 包和 SSRS 报告,处理 SSAS 数据库并使其可查询的引擎是 SQL 服务器上的服务 运行。它能够读取 XML 文件并说 "ah, I know what to do with this." 这就像 SSIS/SSRS/SSAS 文件是食谱,而 SQL 服务器是厨师。

所以在 SQL Server 2008 中,SQL 服务器开发人员编写了一个引擎,可以查看 XML 文件并按照文件中的说明进行操作,只要这些说明符合引擎被编写来处理的一组有限的命令。

他们将这些命令交给 Visual Studio 开发人员并说,"As long as Visual Studio produces an XML file that uses these commands, our engine will be able to interpret it and execute it." 所以 Visual Studio 2008 年生成 XML 文件,这些文件仅限于 SQL Server 2008 会明白。

然后在 2012 年,SQL 服务器开发人员创建了一个新的改进引擎,可以理解 2008 年没有想到的新命令。它将这些命令提供给 Visual Studio 人员,他们开始生产使用新命令的 XML。

因此,当您使用 Visual Studio 2012 创建 BI 对象时,它可以包含 2008 年不存在的命令,并且 Microsoft 不会返回并在 SQL Server 2008。因此 SQL Server 2008 将看到新命令并说 "huh?"

这是一个非常粗略的过度简化(例如,它不仅是命令,而且 XML 的整个格式都可以在不同版本之间改变),但希望它能非常清楚地说明为什么你不能开发Visual Studio 的 BI 对象比与您的 SQL 服务器版本配对的版本更新。

希望它对下一个问同样问题的人有用。