搜尋本站文章

2011-05-19

資源管理員(Resource Governor)組態失敗,錯誤號碼:10904,當群組中存在開啟的工作階段時,這個資源管理員版本不允許在集區之間移動群組

使用版本:
SQL Server 2008、SQL Server 2008 R2 版本


以下是片段的錯誤訊息:

錯誤號碼:10904
錯誤訊息:資源管理員組態失敗。
在即將卸除或移到其他資源集區的工作負載群組中有使用中工作階段。
請中斷受影響工作負載群組中的所有使用中工作階段,然後再試一次。

解決方法是:

中斷受影響群組中的所有使用中工作階段,然後再試一次。

當群組中存在開啟的工作階段時,這個資源管理員版本不允許在集區之間移動群組。


--P01


--P02


--P03


--P04


--P05


--P06




以下是完整的錯誤訊息:

===================================

ResourceGovernor 'Microsoft.SqlServer.Management.Smo.ObjectKeyBase' 的 改變 失敗。  (Microsoft.SqlServer.Smo)

------------------------------
如需說明,請按一下: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1777.0+((KJ_RTM_QFE-CU).110408-1400+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=改變+ResourceGovernor&LinkId=20476

------------------------------
程式位置:

   於 Microsoft.SqlServer.Management.Smo.SqlSmoObject.AlterImpl()
   於 Microsoft.SqlServer.Management.Smo.ResourceGovernor.Alter()

===================================

執行 Transact-SQL 陳述式或批次時發生例外狀況。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------
程式位置:

   於 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)
   於 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType)
   於 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries)
   於 Microsoft.SqlServer.Management.Smo.SqlSmoObject.ExecuteNonQuery(StringCollection queries, Boolean includeDbContext)
   於 Microsoft.SqlServer.Management.Smo.SqlSmoObject.AlterImplFinish(StringCollection alterQuery, ScriptingOptions so)
   於 Microsoft.SqlServer.Management.Smo.SqlSmoObject.AlterImplWorker()
   於 Microsoft.SqlServer.Management.Smo.SqlSmoObject.AlterImpl()

===================================

資源管理員組態失敗。在即將卸除或移到其他資源集區的工作負載群組中有使用中工作階段。請中斷受影響工作負載群組中的所有使用中工作階段,然後再試一次。 (.Net SqlClient Data Provider)

------------------------------
如需說明,請按一下: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1777&EvtSrc=MSSQLServer&EvtID=10904&LinkId=20476

------------------------------
伺服器名稱:
錯誤號碼: 10904
嚴重性: 16
狀態: 2
行號: 1


------------------------------
程式位置:

   於 Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
   於 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)


參考資料:

疑難排解資源管理員
http://msdn.microsoft.com/zh-tw/library/cc627395.aspx

資源管理員簡介
http://msdn.microsoft.com/zh-tw/library/bb895232.aspx

2011-05-14

編輯與開啟 DTS 封裝檔案,以 SQL Server 2008 R2 x64 版本為例

使用環境:
1. Windows Server 2008 R2 Enterprise Edition x64 位元
2. SQL Server 2008 R2 Enterprise Edition x64 位元
3. Office 2010 x64 位元


在先前的討論中:

匯入與執行 DTS 封裝檔案,以 SQL Server 2008 R2 x64 版本為例
http://sharedderrick.blogspot.com/2011/05/dts-sql-server-2008-r2-x64.html

已經可以在 SQL Server 2008 R2 x64 版本上,「匯入」、「執行」 DTS 2000 封裝檔案,或是使用「封裝移轉精靈」來移轉 DTS 2000 封裝檔案。

但卻是無法「開啟」或是「編輯」這個 DTS 2000 封裝檔案。

將遭遇到以下的錯誤訊息:

--P01
使用 SSMS 管理工具,開啟「封裝檔案」:


--P02
使用 BIDS 封裝設計師 的「執行 DTS 2000 封裝工作」來編輯 DTS 2000 封裝檔案:


需要利用 SQL Server 2000 Enterprise Manager 來編輯修改 DTS 2000 封裝檔案。

若要在 SSMS 管理工具,以及 BIDS 封裝設計師 上直接編輯與開啟 DTS 2000 封裝檔案,請先安裝:
SQL Server 2000 DTS 設計師元件



下載與安裝軟體:

「SQL Server 2000 DTS 設計師元件」這項軟體元件,目前是在 Microsoft SQL Server 2005 SP4 Feature Pack 上有提供。

在 SQL Server 2008 Feature Pack 版本上並沒有,但仍是可以將其安裝在 SQL Server 2008 版本上。

Microsoft SQL Server 2005 SP4 Feature Pack
發佈日期:2010/12/17
版本:9.00.5000
請下載 Microsoft SQL Server 2005 SP4 Feature Pack,這是一項獨立安裝封裝集合,這些封裝可以增加 SQL Server 2005 的額外價值。
http://www.microsoft.com/downloads/details.aspx?FamilyID=7768393b-71fa-4281-83eb-cab08be4fb76&displayLang=zh-tw

Microsoft SQL Server 2000 DTS 設計師元件
SQL Server 2000 DTS Designer Components

Microsoft SQL Server 2000 Data Transformation Services (DTS) 封裝設計師是 SQL Server 2005 伺服器的開發人員和管理員用來編輯及維護現有 DTS 封裝的設計工具,直到這些現有的 DTS 封裝升級或採用 SQL Server 2005 Integration Services 封裝格式重新建立為止。

安裝這個下載項目之後,SQL Server 2005 使用者就可以從 SQL Server 2005 Management Studio 中的物件總管,或從 Business Intelligence Development Studio 中的「執行 DTS 2000 封裝」工作編輯器,繼續編輯及維護現有的 DTS 封裝,而不必重新安裝 SQL Server 2000 工具。

以前是從 SQL Server 2000 Enterprise Manager 中的 Data Transformation Services 節點存取這個下載項目中的 DTS 封裝設計師。

注意:SQL Server 2000 Data Transformation Services (DTS) 是僅限 32 位元使用的功能。x64 平台上的 WOW 支援 DTS,但 Itanium 平台上則不支援。

X86 封裝 (SQLServer2005_DTS.msi)
http://go.microsoft.com/fwlink/?LinkId=206440&clcid=0x404

安裝畫面如下:
--P01

--P02


--P03


--P04


--P05


--P06



依預設,在 32 位元電腦上,SQL Server 2000 的二進位檔案位在 %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn 資料夾中,
而 SQL Server 2008 的二進位檔案則位在 %ProgramFiles%\Microsoft SQL Server\100\Tools\Binn 資料夾中。

這些預設位置可能會導致 SQL Server 2000 的二進位檔案路徑發生在 SQL Server 2008 的二進位檔案路徑之前的 PATH 環境變數中。

如果發生這種狀況,可能會在您嘗試使用 DTS 設計師時出現錯誤訊息。
若要解決這項錯誤,請將設計師需要的檔案複製到新位置,如下列程序所述。

附註
在 64 位元電腦上,在下列程序中以 %ProgramFiles(x86)% 代替 %ProgramFiles%。



讓 SSMS 管理工具,可以使用「DTS 2000 封裝設計師」

工作1.
將 SEMSFC.DLL、SQLGUI.DLL 和 SQLSVC.DLL 檔案從 %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn 資料夾複製到 %ProgramFiles%\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE 資料夾。

在 x64 位元環境下,若使用預設的安裝路徑,例如:

XCOPY "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\semsfc.dll" "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE"

XCOPY "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\sqlgui.dll" "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE"

XCOPY "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\sqlsvc.dll" "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE"

--P01


工作2.
將 SEMSFC.RLL、SQLGUI.RLL 和 SQLSVC.RLL 檔案從 %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn\Resources 資料夾複製到 %ProgramFiles%\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Resources\%lang_id% 資料夾。例如,若為 U.S. English,lang_id 子資料夾就是 "1033"。

在 x64 位元環境下,若使用預設的安裝路徑,以中文環境為例(使用 10248),例如:

XCOPY "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\Resources\1028\semsfc.rll" "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Resources\1028"

XCOPY "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\Resources\1028\sqlgui.rll" "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Resources\1028"

XCOPY "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\Resources\1028\sqlsvc.rll" "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Resources\1028"

--P02


工作3. 使用 SSMS 管理工具,執行「DTS 2000 封裝設計師」

步驟01. 執行 SSMS 管理工具,使用「物件總管」連線到目標伺服器。

步驟02. 展開「管理」\「舊版」\「Data Transformation Services」節點。滑鼠右鍵,選擇「開啟封裝檔案」。
選擇指定的 DTS 2000 封裝檔案,點選「開啟舊檔」。

--P03


步驟03. 就可以看到「DTS 2000 封裝設計師」圖型介面工具。

--P04




讓 BIDS 封裝設計師,可以使用「DTS 2000 封裝設計師」,編輯設計 DTS 2000 封裝檔案

工作1.
將 SEMSFC.DLL、SQLGUI.DLL 和 SQLSVC.DLL 檔案從 %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn 資料夾複製到 %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE 資料夾。

在 x64 位元環境下,若使用預設的安裝路徑,例如:

XCOPY "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\semsfc.dll" "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE"

XCOPY "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\sqlgui.dll" "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE"

XCOPY "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\sqlsvc.dll" "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE"

--P01


工作2.
將 SEMSFC.RLL、SQLGUI.RLL 和 SQLSVC.RLL 檔案從 %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn\Resources 資料夾複製到 %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\Resources\%lang_id% 資料夾。例如,若為 U.S. English,lang_id 子資料夾就是 "1033"。

提醒:
在本次實作環境上( x64 位元 平台),並未找到 Resources 資料夾等,經過測試,可以自行建立資料夾來達成需求。

在 x64 位元環境下,若使用預設的安裝路徑,以中文環境為例(使用 1028),例如:

MD "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\Resources"

MD "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\Resources\1028"

XCOPY "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\Resources\1028\semsfc.rll" "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\Resources\1028"

XCOPY "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\Resources\1028\sqlgui.rll" "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\Resources\1028"

XCOPY "C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\Resources\1028\sqlsvc.rll" "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\Resources\1028"

--P02



工作3. 使用 BIDS 封裝設計師的「DTS 2000 封裝設計師」,編輯設計 DTS 2000 封裝檔案

步驟01. 開啟 Integration Servcies 專案,使用 BIDS 封裝設計師。

步驟02. 在「控制流程」頁面,拖曳增加一個「Execute DTS 2000 Package Task」。
設定要載入的 DTS 2000 封裝檔案的相關屬性。

--P03


步驟03. 在「執行 DTS 2000 封裝工作編輯器」視窗,點選「編輯封裝」。

--P04


步驟04. 就可以看到「DTS 2000 封裝設計師」圖型介面工具。



若使用的 DTS 2000 封裝檔案未升級 SQL Server 2000 SP4 版本,可能會遭遇以下的錯誤:

--P01


--P02


--P03


--P04



參考資料:

匯入與執行 DTS 封裝檔案,以 SQL Server 2008 R2 x64 版本為例
http://sharedderrick.blogspot.com/2011/05/dts-sql-server-2008-r2-x64.html

使用「封裝移轉精靈(Package Migration Wizard)」來移轉 DTS 2000 封裝檔案,以 SQL Server 2008 R2 x64 版本為例
http://sharedderrick.blogspot.com/2011/05/package-migration-wizard-dts-2000-sql.html

如何:安裝 Data Transformation Services 封裝的支援
http://msdn.microsoft.com/zh-tw/library/ms143755.aspx

Support for SQL Server 2000 DTS in SQL Server 2008 R2
http://msdn.microsoft.com/en-us/library/bb500440.aspx

SQL Server 2008 R2 中 Data Transformation Services (DTS) 的支援
http://msdn.microsoft.com/zh-tw/library/bb500440.aspx

Microsoft SQL Server 2008 Service Pack 2 Feature Pack
http://www.microsoft.com/downloads/details.aspx?FamilyID=1b2bd555-cb5b-47b9-88c7-3f89f3b43779&displayLang=zh-tw

設定 SSMS 2008 管理工具,可以使用 DTS 設計師
http://sharedderrick.blogspot.com/2009/10/ssms-2008-dts.html

2011-05-12

使用「封裝移轉精靈(Package Migration Wizard)」來移轉 DTS 2000 封裝檔案,以 SQL Server 2008 R2 x64 版本為例

使用環境:

1. Windows Server 2008 R2 Enterprise Edition x64 位元
2. SQL Server 2008 R2 Enterprise Edition x64 位元
3. Office 2010 x64 位元


在安裝好「SQL Server 2005 回溯相容性元件(SQL Server 2005 Backward Compatibility Components)」後,就可以使用「封裝移轉精靈」來將 DTS 封裝移轉到 Integration Services 格式。

只需安裝「SQL Server 2005 回溯相容性元件」,就可以使用「封裝移轉精靈(Package Migration Wizard)」。

請參考:
匯入與執行 DTS 封裝檔案,以 SQL Server 2008 R2 x64 版本為例
http://sharedderrick.blogspot.com/2011/05/dts-sql-server-2008-r2-x64.html


實作練習:
使用「封裝移轉精靈」,將 DTS 2000 封裝檔案移轉為 SSIS 封裝檔案

工作1:在 SSMS 工具,使用「封裝移轉精靈」

步驟01. 執行 SSMS 管理工具,使用「物件總管」連線到目標伺服器。
步驟02. 展開「管理」\「舊版」\「Data Transformation Services」節點。滑鼠右鍵,選擇「移轉精靈」。

步驟03. 在「封裝移轉精靈」視窗,點選「下一步」。
--P01


步驟04. 在「選擇來源位置」視窗,輸入以下的參數:

  • 在「來源」,下拉選擇:「結構化儲存檔案」。
  • 在「指定包含要移轉之封裝的結構化儲存體檔案」區域,點選「瀏覽」,選擇要執行移轉的 DTS 2000 封裝檔案。
  • 點選「下一步」。


--P02


--P03


步驟05. 在「選擇目的地位置」視窗,設定存放 SSIS 封裝用 SQL Server 伺服器相關資訊,點選「下一步」。

--P04


步驟06. 在「列出封裝」視窗,輸入以下的參數:

  • 在「來源封裝」區域,勾選要執行移轉作業的 DTS 2000 封裝。
  • 在「建立日期」區域,可以選擇指定的版本。
  • 點選「下一步」。


--P05


步驟07. 在「指定記錄檔」視窗,輸入以下的參數:

  • 在「選擇記錄檔」區域,點選「瀏覽」,設定用來存放與記錄封裝移轉的相關資料。
  • 點選「下一步」。


--P06


步驟08. 在「完成精靈」視窗,點選「完成」。

--P07


步驟09. 在「正在移轉封裝」視窗,點選「關閉」。

工作2:檢視移轉後的封裝

步驟01. 使用 SSMS 管理工具,連線到 Integration Servcies 伺服器。
步驟02. 展開「存放的封裝」\「MSDB」節點,應該可以看到先前移轉的封裝檔案。

--P08


步驟03. 使用檔案總管,開啟存放移轉作業的紀錄檔。

--P09




工作3:在 BIDS 封裝設計師,使用「封裝移轉精靈」

步驟01. 開啟 Integration Servcies 專案,使用 BIDS 封裝設計師。

步驟02. 在右邊「方案總管」視窗,點選「SSIS 封裝」,滑鼠右鍵,選擇「移轉 DTS 2000 封裝」。

--P10


步驟03. 在「封裝移轉精靈」視窗,點選「下一步」。

步驟04. 在「選擇來源位置」視窗,輸入以下的參數:

  • 在「來源」,下拉選擇:「結構化儲存檔案」。
  • 在「指定包含要移轉之封裝的結構化儲存體檔案」區域,點選「瀏覽」,選擇要執行移轉的 DTS 2000 封裝檔案。
  • 點選「下一步」。


步驟05. 在「選擇目的地」視窗,設定用來存放移轉後 SSIS 封裝檔案的存放位置,點選「下一步」。

--P11


步驟06. 在「列出封裝」視窗,輸入以下的參數:

  • 在「來源封裝」區域,勾選要執行移轉作業的 DTS 2000 封裝。
  • 在「建立日期」區域,可以選擇指定的版本。
  • 點選「下一步」。


步驟07. 在「指定記錄檔」視窗,輸入以下的參數:

  • 在「選擇記錄檔」區域,點選「瀏覽」,設定用來存放與記錄封裝移轉的相關資料。
  • 點選「下一步」。


步驟08. 在「完成精靈」視窗,點選「完成」。

--P12


步驟09. 在「正在移轉封裝」視窗,點選「關閉」。


工作4:檢視移轉後的封裝

步驟01. 在「方案總管」視窗,應該可以看到完成移轉作業的封裝檔案。

--P13


步驟02. 開啟此封裝,檢視移轉的成果。

--P14


--P15


步驟03. 使用檔案總管,開啟存放移轉作業的紀錄檔。

--P16



若要使用「封裝移轉精靈(Package Migration Wizard)」,需要先安裝「SQL Server 2005 回溯相容性元件(SQL Server 2005 Backward Compatibility Components)」。

若是沒有安裝「SQL Server 2005 回溯相容性元件」,將遭遇到以下的錯誤訊息:

封裝移轉精靈需要 SQL Server 2000 Data Transformation Services (DTS) 執行階段。
若要安裝 DTS 執行階段,請執行 SQL Server 安裝精靈。在 [要安裝的元件] 頁面上,按一下 [進階],然後選取 [傳統元件] 以進行安裝。

--P17



Integration Services 提供了 DTS 封裝移轉精靈,可用來移轉使用 DTS 工具和物件模型所建立的 SQL Server 2000 Data Transformation Services (DTS) 封裝。

您可以在 SQL Server 的 Standard、Enterprise 和 Developer Edition 中使用「封裝移轉精靈」。

Upgrade Advisor 無法分析,且封裝移轉精靈也無法移轉儲存在 SQL Server 7.0 執行個體之 msdb 資料庫中的 DTS 封裝。

然而,Upgrade Advisor 可分析,且封裝移轉精靈也可移轉儲存成結構化儲存體檔案的 SQL Server 7.0 DTS 封裝,或儲存在已升級成 SQL Server 2005 之 SQL Server 7.0 執行個體的 msdb 資料庫中的 SQL Server 7.0 DTS 封裝。

並非所有封裝都可以完全移轉
例如,有些 DTS 工作不會對應至 Integration Services 工作、自訂工作無法移轉,而 ActiveX Script 工作或資料轉換中的某些指令碼也無法移轉。

DTS 封裝格式中剩餘的封裝可用於 Integration Services 方案中,而且也可以繼續當做獨立的 DTS 封裝執行。

許多 DTS 封裝都受到密碼保護。如果您要移轉這些封裝,封裝移轉精靈會提示您輸入密碼。除非您提供正確的密碼,否則無法移轉受密碼保護的封裝。

SQL Server 不安裝 Meta Data Services 的支援。唯有當 SQL Server 2000、SQL Server 2000 工具或儲存機制的可轉散發檔案已安裝在本機電腦上時,封裝移轉精靈才支援 Meta Data Services (儲存機制) 封裝。

存在「儲存機制」檔案時,「封裝移轉精靈」可移轉已儲存至 Meta Data Services 的 DTS 封裝。

若沒有出現儲存機制檔案,封裝移轉精靈只能移轉已儲存至 SQL Server 或結構化儲存體檔案的 DTS 封裝。

移轉封裝之後,應該在 Business Intelligence Development Studio 中開啟已移轉的封裝來檢查是否有問題,包括驗證失敗等。

例如,有些封裝是依賴相同封裝內的先前工作,來建立或準備資料來源或資料目的地,當找不到這些物件時,驗證就會失敗。

這種類型的驗證失敗可透過在工作或其他容器物件上將 DelayValidation 屬性設定為 true,或在受影響的資料流程元件上將 ValidateExternalMetadata 屬性設定為 false 來予以解決。


參考資料:

移轉 Data Transformation Services 封裝
http://msdn.microsoft.com/zh-tw/library/ms143501.aspx

使用 DTS 封裝移轉精靈
http://msdn.microsoft.com/zh-tw/library/ms143496.aspx

已知的 DTS 封裝移轉問題
http://msdn.microsoft.com/zh-tw/library/ms143462.aspx

匯入與執行 DTS 封裝檔案,以 SQL Server 2008 R2 x64 版本為例
http://sharedderrick.blogspot.com/2011/05/dts-sql-server-2008-r2-x64.html

設定 SSMS 2008 管理工具,可以使用 DTS 設計師
http://sharedderrick.blogspot.com/2009/10/ssms-2008-dts.html

2011-05-11

匯入與執行 DTS 封裝檔案,以 SQL Server 2008 R2 x64 版本為例

使用環境:

1. Windows Server 2008 R2 Enterprise Edition x64 位元
2. SQL Server 2008 R2 Enterprise Edition x64 位元
3. Office 2010 x64 位元



工作1:使用 SSMS 管理工具,匯入 DTS 封裝檔案

步驟01. 執行 SSMS 管理工具,設定連線到目標伺服器。
步驟02. 展開「管理」\「舊版」\「Data Transformation Services」節點。
--P01


步驟03. 在「Data Transformation Services」節點,滑鼠右鍵,選擇「匯入封裝檔案」。

遭遇以下的錯誤訊息:
--P02


--P03


顯示的錯誤訊息:
===================================

在 SQL Server Management Studio 中管理 DTS 封裝必須有 SQL Server 2000 Data Transformation Services (DTS) 執行階段。如果要安裝 DTS 執行階段,請從 SQL Server 2008 R2 安裝媒體找出並執行適用於 SQL Server 2005 回溯相容性的 Windows Installer 套件 (SQLServer2005_BC*.msi)。您也可以從 Microsoft 下載中心的 SQL Server 功能套件網頁下載 DTS 執行階段。 (Microsoft.SqlServer.DtsObjectExplorerUI)

------------------------------
程式位置:

   於 Microsoft.SqlServer.Dts.ObjectExplorerUI.PackageUtils.LoadPkgInfoFromStorageFile(String sUNCPath)
   於 Microsoft.SqlServer.Dts.ObjectExplorerUI.LegacyActionBase.ShowPkgBrowser(String& sPackageName, String& sPackageID, String& sPackageVersionID, StorageLocation location, String sPackagePathName)

===================================

Managing DTS packages in SQL Server Management Studio requires the SQL Server 2000 Data Transformation Services (DTS) runtime. To install the DTS runtime, on your SQL Server 2008 R2 installation media, locate and run the Windows Installer package for SQL Server 2005 Backward Compatibility (SQLServer2005_BC*.msi). You can also download the DTS runtime from the SQL Server Feature Pack page on the Microsoft Download Center. (Microsoft.SqlServer.DtsObjectExplorerUI)

------------------------------
Program Location:

   at Microsoft.SqlServer.Dts.ObjectExplorerUI.PackageUtils.LoadPkgInfoFromStorageFile(String sUNCPath)
   at Microsoft.SqlServer.Dts.ObjectExplorerUI.LegacyActionBase.ShowPkgBrowser(String& sPackageName, String& sPackageID, String& sPackageVersionID, StorageLocation location, String sPackagePathName)


這是因為:
沒有安裝「SQL Server 2005 回溯相容性元件」,才導致無法執行、匯入 DTS 2000 封裝檔案。


下載與安裝軟體:

Microsoft SQL Server 2008 Service Pack 2 Feature Pack
發佈日期:2010/9/29
版本:10.00.4000.00
請下載 Microsoft SQL Server 2008 SP2 Feature Pack,這是一項獨立安裝封裝集合,這些封裝可以增加 SQL Server 2008 SP2 的額外價值。
http://www.microsoft.com/downloads/details.aspx?FamilyID=1b2bd555-cb5b-47b9-88c7-3f89f3b43779&displayLang=zh-tw


Microsoft SQL Server 2005 回溯相容性元件

SQL Server 回溯相容性封裝包括最新版的 Data Transformation Services 2000 執行階段 (DTS)、SQL Distributed Management Objects (SQL-DMO)、決策支援物件 (DSO) 及 SQL 虛擬裝置介面 (SQLVDI)。

這些版本已更新為可與 SQL Server 2005 及 SQL Server 2008 相容,且包括所有利用 SQL Server 2000 Service Pack 4 (SP4) 和 SQL Server 2005 SP2 來傳送的修正程式。

(1) X86 封裝 (SQLServer2005_BC.msi) http://go.microsoft.com/fwlink/?LinkId=202308&clcid=0x404

(2) X64 封裝 (SQLServer2005_BC_x64.msi) http://go.microsoft.com/fwlink/?LinkId=202310&clcid=0x404

(3) IA64 封裝 (SQLServer2005_BC_ia64.msi) http://go.microsoft.com/fwlink/?LinkId=202311&clcid=0x404

安裝畫面如下:
--P01


--P02


--P03


--P04


--P05


--P06


--P07




在完成安裝「SQL Server 2005 回溯相容性元件」後。
請再度使用 SSMS 管理工具來 匯入 DTS 封裝檔案。

--P01


--P02


--P03


--P04


--P05


在 SSMS 管理工具\「管理」\「舊版」\「Data Transformation Services」節點,具備以下的功能:
(1)「開啟封裝檔案」。
(2)「匯入封裝檔案」。
(3)「移轉精靈」。


僅是安裝了「SQL Server 2005 回溯相容性元件」,是無法使用「開啟封裝檔案」的功能。

--P06


顯示的錯誤訊息:
------------------------------

需要有 SQL Server 2000 DTS 設計師元件,才能編輯 DTS 封裝。請安裝特殊的 Web 下載項目: "SQL Server 2000 DTS 設計師元件",以使用此功能。 (Microsoft.SqlServer.DtsObjectExplorerUI)

------------------------------
程式位置:

   於 Microsoft.SqlServer.Dts.ObjectExplorerUI.LegacyActionBase.CreateLegacyDesigner()
   於 Microsoft.SqlServer.Dts.ObjectExplorerUI.OpenLegacyPackageFromFileAction.Act(INodeInformation nodeInfo)
   於 Microsoft.SqlServer.Dts.ObjectExplorerUI.DtsServerMenuItem.Invoke(INodeInformation parent, String mode, String assembly, String type)


執行封裝

若安裝「SQL Server 2005 回溯相容性元件」,就可以使用「執行 DTS 2000 封裝工作(Execute DTS 2000 Package Task)」來執行封裝:

--P01


--P02


--P03




若是沒有安裝「SQL Server 2005 回溯相容性元件」,是無法使用「執行 DTS 2000 封裝工作」來執行封裝:

--P04


--P05


顯示的錯誤訊息:
===================================

無法顯示此工作的編輯器。 (Microsoft Visual Studio)

===================================

執行 DTS 2000 封裝工作必須有 SQL Server 2000 Data Transformation Services (DTS) 執行階段。如果要安裝 DTS 執行階段,請從 SQL Server 2008 R2 安裝媒體找出並執行適用於 SQL Server 2005 回溯相容性的 Windows Installer 套件 (SQLServer2005_BC*.msi)。您也可以從 Microsoft 下載中心的 SQL Server 功能套件網頁下載 DTS 執行階段。 (Microsoft.SqlServer.Exec80PackageTaskUI)

------------------------------
程式位置:

   於 Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask.InnerView.OnInitialize(IDTSTaskUIHost treeHost, TreeNode viewNode, Object taskHost, Object connections)
   於 Microsoft.DataTransformationServices.Controls.TreePanelHost.OnInitialize(TreeNode node)
   於 Microsoft.DataTransformationServices.Controls.TreePanelHost.Microsoft.DataTransformationServices.Controls.IDTSTaskUIHost.AddView(String viewName, IDTSTaskUIView view, TreeNode parentNode)
   於 Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask.Exec80PackageTaskMainWnd..ctor(TaskHost taskHost)
   於 Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask.Exec80PackageTaskUI.GetView()
   於 Microsoft.DataTransformationServices.Design.DtrTaskDesigner.GetTaskEditor()

===================================

Cannot show the editor for this task. (Microsoft Visual Studio)

===================================

The Execute DTS 2000 Package task requires the SQL Server 2000 Data Transformation Services (DTS) runtime. To install the DTS runtime, on your SQL Server 2008 R2 installation media, locate and run the Windows Installer package for SQL Server 2005 Backward Compatibility (SQLServer2005_BC*.msi). You can also download the DTS runtime from the SQL Server Feature Pack page on the Microsoft Download Center. (Microsoft.SqlServer.Exec80PackageTaskUI)

------------------------------
Program Location:

   at Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask.InnerView.OnInitialize(IDTSTaskUIHost treeHost, TreeNode viewNode, Object taskHost, Object connections)
   at Microsoft.DataTransformationServices.Controls.TreePanelHost.OnInitialize(TreeNode node)
   at Microsoft.DataTransformationServices.Controls.TreePanelHost.Microsoft.DataTransformationServices.Controls.IDTSTaskUIHost.AddView(String viewName, IDTSTaskUIView view, TreeNode parentNode)
   at Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask.Exec80PackageTaskMainWnd..ctor(TaskHost taskHost)
   at Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask.Exec80PackageTaskUI.GetView()
   at Microsoft.DataTransformationServices.Design.DtrTaskDesigner.GetTaskEditor()


若是存放多個 DTS 2000 封裝在同一個檔案 *.dts 內

看來是無法使用 SSMS 管理工具,也無法利用「執行 DTS 2000 封裝工作」來開啟與執行這類的封裝檔案。

顯示的錯誤訊息:
無法比較陣列中的兩個元素。 (mscorlib)

------------------------------
程式位置:

   於 System.Array.SorterObjectArray.SwapIfGreaterWithItems(Int32 a, Int32 b)
   於 System.Array.SorterObjectArray.QuickSort(Int32 left, Int32 right)
   於 System.Array.Sort(Array keys, Array items, Int32 index, Int32 length, IComparer comparer)
   於 System.Collections.ArrayList.Sort(Int32 index, Int32 count, IComparer comparer)
   於 System.Collections.ArrayList.Sort()
   於 Microsoft.SqlServer.Dts.ObjectExplorerUI.Pkg80Browser.LoadPkg80Browser(SavedPackageInfos savedPkgInfos, String fileName)
   於 Microsoft.SqlServer.Dts.ObjectExplorerUI.LegacyActionBase.ShowPkgBrowser(String& sPackageName, String& sPackageID, String& sPackageVersionID, StorageLocation location, String sPackagePathName)

===================================

至少一個物件必須實作 IComparable。 (mscorlib)

------------------------------
程式位置:

   於 System.Collections.Comparer.Compare(Object a, Object b)
   於 System.Array.SorterObjectArray.SwapIfGreaterWithItems(Int32 a, Int32 b)


-- 在 BIDS 上的「執行 DTS 2000 封裝工作」,所顯示的錯誤訊息

===================================

無法比較陣列中的兩個元素。 (mscorlib)

------------------------------
程式位置:

   於 System.Array.SorterObjectArray.SwapIfGreaterWithItems(Int32 a, Int32 b)
   於 System.Array.SorterObjectArray.QuickSort(Int32 left, Int32 right)
   於 System.Array.Sort(Array keys, Array items, Int32 index, Int32 length, IComparer comparer)
   於 System.Collections.ArrayList.Sort(Int32 index, Int32 count, IComparer comparer)
   於 System.Collections.ArrayList.Sort(IComparer comparer)
   於 Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask.Pkg80Browser..ctor(SavedPackageInfos savedPkgInfos, String fileName)
   於 Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask.ModelEditer.ShowPkgBrowser(GeneralNode genNode, Object value, IWindowsFormsEditorService editorService)

===================================

無法將型別 'Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask.SavedPkgTreeNode' 的物件轉換為型別 'Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask.PkgTreeNode'。 (Microsoft.SqlServer.Exec80PackageTaskUI)

------------------------------
程式位置:

   於 Microsoft.SqlServer.Dts.Tasks.Exec80PackageTask.Pkg80Browser.PackageTreeNodeComparer.Compare(Object x, Object y)
   於 System.Array.SorterObjectArray.SwapIfGreaterWithItems(Int32 a, Int32 b)

--P01
使用 SQL Server 2000 Enterprise Manager 可以正確開啟:



--P02
使用 SSMS 管理工具無法匯入:



--P03
使用「執行 DTS 2000 封裝工作」,無法開啟:






參考資料:
Support for SQL Server 2000 DTS in SQL Server 2008 R2
http://msdn.microsoft.com/en-us/library/bb500440.aspx

SQL Server 2008 R2 中 Data Transformation Services (DTS) 的支援
http://msdn.microsoft.com/zh-tw/library/bb500440.aspx

Microsoft SQL Server 2008 Service Pack 2 Feature Pack
http://www.microsoft.com/downloads/details.aspx?FamilyID=1b2bd555-cb5b-47b9-88c7-3f89f3b43779&displayLang=zh-tw


設定 SSMS 2008 管理工具,可以使用 DTS 設計師
http://sharedderrick.blogspot.com/2009/10/ssms-2008-dts.html