升級 SQL Server 2008 Integration Services 的自訂物件
在 SQL Server 2008 中,有一些帶來突破性變更的新 Integration Services 功能,這些變更會影響 SQL Server 2005Integration Services 內建的自訂物件。如果您想要在 SQL Server 2008Integration Services 封裝中使用這些自訂物件,必須升級這些物件。
此主題描述如何為您的自訂物件決定最佳的升級選項,以及如何將這些物件從 SQL Server 2005Integration Services 部署到 SQL Server 2008Integration Services。此外,也會說明如何確保在封裝的自動升級期間,找到您的更新自訂物件。
決定如何升級自訂物件
您可以選擇直接將自訂物件升級或是升級並回復您的物件:
僅升級:在本選項中,您變更自訂物件,使其與 SQL Server 2008Integration Services 相容。
升級與回復:在本選項中,您先升級物件。接著,將新組件版本指派到已升級的物件,並建立對應檔案,來為這些新物件識別位置。
不論您選取哪個升級選項,都必須在物件的使用者嘗試升級包含這些物件的封裝之前,升級自訂物件。當封裝升級引擎嘗試升級封裝時,引擎會嘗試具現化這些封裝中的自訂物件。如果電腦沒有這些自訂物件的升級版本,封裝升級引擎將無法具現化物件。因為無法具現化物件,所以封裝升級引擎將無法升級封裝。
[!附註]
BI Development Studio 的 SQL Server 2008 版本會在您開啟個別的 SQL Server 2005 封裝時,自動啟動封裝升級引擎。「封裝升級精靈」也會在升級封裝批次時,使用相同的封裝升級引擎。
為了協助您決定是要只升級或是升級與回復,下表指出各種要考慮的因素。
選項 |
對封裝升級的影響 |
對並存的影響 |
|---|---|---|
僅升級自訂物件 |
您不必採取任何其他步驟。封裝升級引擎可以順利地升級包含自訂物件的封裝。 |
您只能在不同的電腦上分別使用自訂物件的 SQL Server 2008 版本或 SQL Server 2005 版本。您無法在同一部電腦上使用自訂物件的 SQL Server 2005 版本和 SQL Server 2008 版本。 |
升級與回復自訂物件 |
您必須建立對應檔案並隨升級的物件散發。否則,封裝升級引擎將無法順利地升級包含自訂物件的封裝。 |
您可以在同一部電腦上使用 SQL Server 2005 封裝中的 SQL Server 2005 版自訂物件,以及 SQL Server 2008 封裝中的 SQL Server 2008 版自訂物件。 |
升級您的自訂物件
下列程序簡述如何升級自訂物件,使其與 SQL Server 2008Integration Services 相容。
更新自訂物件
移除 9.0 版的 Integration Services 組件參考,並以相同組件的 10.0 版參考加以取代。
將程式碼中的 IDTSxxx90 物件重新命名為相等的 IDTSxxx100 物件。
查詢有關過時或是已被取代之程式碼成員的警告,並以相等的新成員加以取代。
在升級自訂物件之後,就可以選擇是否也要回復這些物件。您不必回復升級的自訂物件。如果您決定不要回復自訂物件,將需要部署升級的自訂物件,如本主題稍後所述。
然而,如果您想要在 SQL Server 2005Integration Services 與 SQL Server 2008Integration Services 封裝中同時使用不同版本的自訂物件,將需要回復升級的物件,如下一節所述。
回復您的自訂物件
回復自訂物件的方式,端視您是以 Managed 程式碼或機器碼來撰寫這些物件而定:
Managed 程式碼:對於以 Managed 程式碼撰寫的自訂物件而言,回復表示遞增組件版本號碼。
機器碼:對於以機器碼撰寫的自訂物件而言,回復表示變更 ProgID 與 CLSID。
在回復自訂物件之後,必須為這些物件提供升級對應檔案。在封裝升級期間,這些對應檔案會告訴封裝升級引擎,如何以新版本取代舊版的自訂物件。
對應要升級的自訂物件之版本
SQL Server 2008Integration Services 在 %ProgramFiles%\Microsoft SQL Server\100\DTS 資料夾中加入新子資料夾 UpgradeMappings。這個子資料夾是您部署對應檔案的位置,這些檔案會告訴封裝升級引擎如何將 SQL Server 2005Integration Services 物件對應到其新的 SQL Server 2008 對等項目。
在將對應檔案部署到 UpgradeMappings 子資料夾之後,Integration Services 就可以升級含有自訂物件的封裝。只有在封裝升級期間才需要對應檔案。在升級所有的封裝之後,您可以移除對應檔案。如需詳細資訊,請參閱<升級 Integration Services 封裝>。
所有的對應檔案都必須是 XML 格式,如下列範例對應檔案所示。
[!附註]
您的對應檔案必須有 ".xml" 副檔名,否則封裝升級引擎將無法發現這些檔案。
範例對應檔案
<?xml version="1.0" encoding="utf-8"?>
<Mappings xmlns="https://www.microsoft.com/SqlServer/Dts/UpgradeMapping.xsd">
<!-- Connection Managers -->
<ConnectionManagerMapping tag="MSOLAP - Analysis Services connections"
oldValue="MSOLAP90"
newValue="MSOLAP100" />
<!-- Extensions -->
<ExtensionMapping tag="my custom object"
oldAssemblyStrongName="MyCustomAssembly.MyCustomTask, MyCustomAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
newAssemblyStrongName="MyCustomAssembly.MyCustomTask, MyCustomAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
<!-- Providers -->
<ProviderMapping tag="SQL Server Native Client - Version dependent"
oldValue="sqlncli.1"
newValue="sqlncli10.1" />
<ProviderMapping tag="SQL Server Native Client - Version independent"
oldValue="sqlncli"
newValue="sqlncli10" />
<ProviderMapping tag="MSOLAP - Analysis Services connections"
oldValue="msolap.3"
newValue="msolap.4" />
</Mappings>
建立您自己的 <ExtensionMapping> 元素
如上述範例對應檔案中所示,<ExtensionMapping> 元素是將 SQL Server 2005Integration Services 物件對應至其新的 SQL Server 2008Integration Services 對等項目的元素。在您建立新的 <ExtensionMapping> 元素之後,必須提供值給下表中的屬性。
屬性 |
說明 |
|---|---|
tag |
描述自訂物件的文字 (這項描述是用於記錄)。 |
oldAssemblyStrongName |
在 SQL Server 2005Integration Services 中的自訂物件組件之強式名稱。 |
newAssemblyStrongName |
在 SQL Server 2008Integration Services 中的自訂物件組件之強式名稱。 |
對應組件時您有下列選項:
您可以使用完整的類別名稱:<assembly name>.<class name>, <assembly name>, Version=<version>, Culture=<culture>, PublicKeyToken=<key>。在本主題稍早的範例對應檔案中有顯示這個格式。
您可以提供組件本身的強式名稱、不含類別名稱,如下列範例所示:
<ExtensionMapping tag="my custom object" oldAssemblyStrongName="MyCustomAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" newAssemblyStrongName="MyCustomAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />如果您提供組件本身的強式名稱,會將舊組件的所有類別都對應到新組件。
部署升級的自訂物件
部署更新之自訂物件的步驟類似於部署 SQL Server 2005 的步驟。唯一的差別在於現在是將自訂組件複製到 %ProgramFiles%\Microsoft SQL Server\100\DTS 資料夾之下的子資料夾,而不是複製到 %ProgramFiles%\Microsoft SQL Server\90\DTS 資料夾。
如果您回復自訂物件,請記住將對應檔案部署到 UpgradeMappings 資料夾,以支援自動升級使用這些已回復物件的封裝。
|
掌握 Integration Services 的最新狀態