# Service Pack 3a for Microsoft SQL Server 2000

##### 2003 年 4 月 9 日

© Copyright Microsoft Corporation, 2003. 著作權所有，並保留一切權利。

SQL Server 文件編輯小組不提供回答技術支援性問題的服務，但歡迎您隨時提供我們有關此讀我文件的寶貴意見。請您使用下列連結，直接以電子郵件將意見傳送給我們。所有的意見必須以英文書寫。
若要傳送關於此文件的意見，請按一下此處： 提交意見。

# 內容

1.0 簡介

1.1 Database Components SP3a 安裝概觀

1.2 Desktop Engine (MSDE 2000) SP3a 安裝概觀

1.3 移除 SP3a

1.4 識別 SQL Server 或 Analysis Services 目前的版本

1.5 其他關於 SP3a 的資訊

1.6 更新的線上叢書文件集已發行

1.7 更新的 SQL Server 和 Analysis Services 範例已發行

2.0 下載及解壓縮 SP3a

2.1 下載及解壓縮 Desktop Engine (MSDE 2000) SP3a

3.0 安裝 Service Pack

3.1 備份 SQL Server 資料庫

3.2 備份 Analysis Services 資料庫和儲存機制

3.3 確定系統資料庫有足夠的可用空間

3.4 執行 SP3a 安裝程式前先停止服務及應用程式

3.5 安裝 Database Components SP3a

3.6 安裝 Analysis Services SP3a

3.7 安裝 Desktop Engine SP3a

3.7.1 MSDE 2000 SP3a 的必要條件

3.7.2 MSDE 2000 SP3a 的安全性注意事項

3.7.3 MSDE 2000 安裝程式參數

3.7.4 升級現有 MSDE 2000 的執行個體到 SP3a

3.7.5 安裝 MSDE 2000 SP3a 的新執行個體

3.7.6 將 MSDE 1.0 升級到 MSDE 2000 SP3a

3.7.7 重新散發 MSDE 2000 SP3a

3.7.8 MSDE 2000 SP3a 檔案

3.8 重新啟動服務

3.9 重新啟動應用程式

3.10 在容錯移轉叢集上安裝

3.11 在複寫的伺服器上安裝

3.12 將 SP3a 套用至唯讀資料庫或檔案群組

3.13 解除安裝 SP3a

3.14 重新套用 SP3a

4.0 其他安裝注意事項

4.1 自動安裝

4.2 重新散發 SP3a 資料存取元件

5.0 文件注意事項

5.1 資料庫及 Desktop Engine 增強功能

5.1.1 將中文、日文或韓文字元與 Database Components SP3a 搭配使用

5.1.2 移除雜湊組

5.1.3 新增 Affinity Mask 參數

5.1.4 篩選的索引檢視

5.1.5 全文檢索目錄在安裝完成之後重新建置

5.1.6 sp_change_users_login 的語法變更

5.1.7 預設停用臨機操作存取 OLE DB Provider

5.1.8 新的 SqlServerLike 提供者選項

5.1.9 分散式查詢的擴充錯誤訊息

5.1.10 傳回 SQL 陳述式的新函數 fn_get_sql

5.1.11 跨資料庫擁有權鏈結

5.1.12 追蹤旗標 1204 的增強功能

5.1.13 sp_changedbowner 的權限變更

5.1.14 偵錯功能變更

5.1.15 UDP 連接埠 1434 上的作業

5.2 Analysis Services 的增強功能

5.2.1 遠端資料分割

5.2.2 已更新之 Analysis Services 可重新散發的用戶端安裝程式

5.2.3 支援協力廠商資料採擷演譯法提供者

5.2.4 在已更新用戶端檔案的電腦上安裝 Analysis Services

5.2.5 虛擬 Cube 參考之 OLAP Cube 所增加的限制

5.2.6 新增 DESCRIPTION 關鍵字

5.2.7 新增 PivotTable Service 限制用戶端屬性

5.2.8 安全選項屬性中的變更

5.2.9 預設停用 Meta Data Services 的移轉儲存機制

5.2.10 必須在遠端資料資料夾上修改權限

5.3 複寫增強功能

5.3.1 交易式複寫 UPDATE 自訂預存程序

5.3.2 唯一資料行上的交易式複寫 UPDATE 陳述式

5.3.3 已從並行快照處理移除的限制

5.3.4 交易式複寫指令碼自訂預存程序

5.3.5 合併複寫保留型中繼資料清除

5.3.6 合併複寫的備份及還原問題

5.3.7 從不同版本的 SQL Server 還原已複寫的資料庫

5.3.8 記錄讀取器代理程式的新參數 -MaxCmdsInTran

5.3.9 非唯一叢集索引的限制

5.3.10 快照代理程式的新 –MaxNetworkOptimization 命令列引數

5.3.11 合併複寫使用新角色

5.3.12 非系統管理員使用者所建立之訂閱的新需求

5.3.13 預存程序權限的變更

5.3.14 sp_addmergearticle 及 sp_changemergearticle 的新參數

5.3.15 設定散發及發行精靈的新頁面

5.3.16 Windows Synchronization Manager 支援變更

5.3.17 變更附加或還原複寫資料庫的需求

5.4 SQL Server 代理程式增強功能

5.4.1 SQL Server 代理程式記錄帳戶資訊

5.4.2 主要/目標伺服器組態的變更

5.4.3 新增 SQL Server 代理程式延伸預存程序

5.4.4 SQL Server 代理程式權限檢查

5.4.5 SQL Agent Mail MAPI 設定檔

5.5 SQL Server 連接元件的增強功能

5.5.1 Microsoft Data Access Components 的更新

5.5.2 支援 QLogic 虛擬介面架構

5.6 Meta Data Services 的增強功能

5.6.1 中繼資料瀏覽器以 Unicode 匯出

5.6.2 停用指令碼支援

5.6.3 存取儲存機制資訊的新 RepositoryUser 角色

5.7 資料轉換服務的增強功能

5.7.1 DTS 精靈不再限制字串資料行為 255 個字元

5.7.2 記錄由 SQL Server 代理程式執行之 DTS 封裝的安全性內容

5.7.3 SQL Server 代理程式之 Proxy 帳戶的改善功能

5.7.4 預設停用 Meta Data Services 的儲存功能

5.8 XML 的增強功能

5.8.1 XPath 運算式的改善驗證功能

5.9 虛擬備份裝置 API 的增強功能

5.9.1 擷取單一快照中的多重資料庫

5.10 錯誤報告

5.11 English Query 的增強功能

5.12 資料程式庫及 Embedded SQL for C

# 1.0 簡介

Microsoft SQL Server 2000 Service Pack 3a (SP3a) 加上了針對 SQL Server 2000 SP3 所作的變更，用來處理 Slammer 病毒引起的問題：

- SP3a 可以套用到 SQL Server 2000 Enterprise Evaluation Edition，以將修正檔套用到該 SQL Server 版本的執行個體上。
- SP3a 可處理某些客戶在 SQL Server 2000 SP3 中安裝 Microsoft Data Access (MDAC) 元件版本所遇的安裝問題。
- 當安裝新的 MSDE 2000 執行個體時，MSDE 2000 SP3a「安裝程式」公用程式會將網路連線支援預設為停用。在執行個體升級到 SP3a 時，則會保留目前的網路支援設定。
- 將 SQL Server 2000 SP3a 或 MSDE 2000 SP3a 執行個體設定為不支援網路連線時，執行個體也會停止使用 UDP 連接埠 1434。

由於 SP3a 中所介紹的變更大多與「安裝程式」相關，所以您不需將 SP3a 套用到已升級為 SP3 的 SQL Server 2000 或 MSDE 2000 執行個體上。然而，若您擁有尚未升級到 SP3 的執行個體，則您應該直接將執行個體升級為 SP3a，而不要升級為 SP3。若您擁有預計用於未來升級時使用的任何 SP3 下載檔案副本，則您應該刪除該副本，並且改以使用 SP3a 下載檔案或 SP3a 光碟。散發及安裝 MSDE 2000 的應用程式應該要安裝 SP3a，而不是 SP3。雖然您可以將 SP3a 套用到 SQL Server 2000 SP3 或 MSDE 2000 SP3 的執行個體上，但此動作對這些執行個體的影響不大。

此 Service Pack 3a (SP3a) for Microsoft® SQL Server™ 2000 的發行版本以三個部份提供：

- Database Components SP3a 提供 SQL Server 2000 執行個體的資料庫元件更新，但不包含 SQL Server 2000 Desktop Engine 的執行個體。Database Components SP3a 包含下列項目的更新：
  - 資料庫引擎。
  - 所有資料庫用戶端工具及公用程式，如 SQL Server Enterprise Manager 及 osql 公用程式。
  - 資料庫用戶端連接元件，例如 Microsoft OLE DB Provider for SQL Server 2000、SQL Server 2000 ODBC 驅動程式，以及用戶端網路程式庫。
- Analysis Services SP3a 提供 SQL Server 2000 安裝中 SQL Server 2000 Analysis Services 元件的更新，包括：
  - Analysis Services。
  - Analysis Services 用戶端元件，其中包含「分析管理員」及 Microsoft OLE DB Provider for Analysis Services。
  - 資料庫用戶端連接元件，例如 Microsoft OLE DB Provider for SQL Server 2000、SQL Server 2000 ODBC 驅動程式，以及用戶端網路程式庫。
- Desktop Engine SP3a 提供 SQL Server 2000 Desktop Engine (MSDE 2000) 執行個體的資料庫元件更新，包含：
  - 資料庫引擎。
  - 隨附於 MSDE 2000 的資料庫命令提示字元公用程式，如 osql 及 bcp 公用程式。
  - 資料庫用戶端連接元件，例如 Microsoft OLE DB Provider for SQL Server 2000、SQL Server 2000 ODBC 驅動程式，以及用戶端網路程式庫。

您可以分別套用 SP3a 的這三個部份，方式如下：

- SQL Server 2000 站台可以使用 Database Components SP3a 來升級其資料庫元件，而不升級 Analysis Services 元件或 SQL Server 2000 Desktop Engine 的執行個體。
- Analysis Services 2000 站台可以使用 Analysis Services SP3a 來升級其 Analysis Services 元件，而不升級 Desktop Engine 執行個體或其資料庫元件。
- MSDE 2000 站台可以使用 Desktop Engine SP3a 來升級 MSDE 2000 的執行個體，而不升級 Analysis Services 或 SQL Server 2000 Database Engine 的執行個體。

附註 如果一台電腦中同時安裝了 MSDE 2000 及其他 SQL Server 2000 Database Engine 版本 (如 Personal Edition、Standard Edition 或 Enterprise Edition) 的不同執行個體，則您必須將 Desktop Engine SP3a 套用到 MSDE 2000 的執行個體，並且將 Database Components SP3a 套用到 SQL Server 2000 Database Engine 的執行個體。

附註 Desktop Engine SP3a 是唯一提供葡萄牙文 (巴西)、瑞典文及荷蘭文的 Service Pack，因為 SQL Server 2000 Desktop Engine (MSDE 2000) 是 SQL Server 2000 為這些語言所產生的唯一版本。由 Database Components SP3a 或 Analysis Services SP3a 升級的 SQL Server 2000 元件在這些語言中無法使用。希望將 SP3a 套用至 Desktop Engine 以外之 SQL Server 版本的巴西、瑞典和荷蘭的使用者必須下載符合其希望升級之語言版本的 SP3a 檔案。例如，若要升級 SQL Server 2000 Database Engine 的英文版本，則需下載英文版的 SP3a 檔案。若需如何下載 Service Pack 的相關資訊，請參閱 2.0 節〈下載及解壓縮 SP3a〉。

## 1.1 Database Components SP3a 安裝概觀

「Database Components SP3a 安裝程式」會自動偵測在欲升級之 SQL Server 2000 的執行個體上目前的 SQL Server 2000 版本。安裝程式只會升級為該執行個體所安裝的元件。例如，當 Service Pack 套用到一部執行 SQL Server 2000 Standard Edition 的電腦時，它將不會嘗試升級僅隨附於 SQL Server 2000 Enterprise Edition 的元件。

Database Components SP3a 可套用到單一的預設執行個體或具名的 SQL Server 執行個體。如果要將 SQL Server 2000 的多個執行個體升級到 SP3a，則必須為每個執行個體分別套用 SP3a。當含有一或多個 SQL Server 2000 執行個體的電腦上有一個執行個體升級到 SP3a，則所有工具也將升級到 SP3a。每一個執行個體不會有其個別的工具副本。

## 1.2 Desktop Engine (MSDE 2000) SP3a 安裝概觀

Desktop Engine SP3a 作用為：

- 將現有的 SQL Server 2000 Desktop Engine (MSDE 2000) 執行個體升級為 SP3a。
- 安裝新的 MSDE 2000 SP3a 執行個體 (前提是您需具有允許您安裝 MSDE 2000 執行個體的 MSDE 2000 授權)。
- 將 MSDE 1.0 執行個體升級到 MSDE 2000 (前提是您需具有允許您執行 MSDE 2000 執行個體的 MSDE 2000 授權)。
- 提供開發人員撰寫應用程式安裝公用程式所需的檔案，且該公用程式可以將 MSDE 2000 SP3a 之執行個體安裝為應用程式安裝的一部分。開發人員必須擁有授權才能以應用程式來散發 MSDE。

若需 MSDE 2000 授權的相關資訊，請參閱 Uses of MSDE 2000。

將 SQL Server 2000 Service Pack 3a 套用到現有 MSDE 2000 之執行個體的程序，需視安裝執行個體的方式而定。來自 Microsoft 的 Desktop Engine SP3a 檔案只可以用來將 SP3a 套用到使用 MSDE 2000 安裝程式公用程式安裝的 MSDE 2000 執行個體。大部分應用程式會使用以下兩種途徑之一來安裝 MSDE 2000：

- 應用程式的安裝程式公用程式在安裝期間呼叫 MSDE 2000 安裝程式公用程式。依照此方式安裝的 MSDE 2000 執行個體可以使用 Desktop Engine SP3a 檔案來升級到 SP3a。
- 如果應用程式的安裝程式公用程式使用 Microsoft Windows Installer 技術，則安裝程式公用程式可以直接使用 MSDE 2000 合併模組。依照此方式安裝的 MSDE 2000 執行個體無法使用 Desktop Engine SP3a 檔案來進行升級。您必須連絡應用程式廠商以取得修補檔案。Desktop Engine (MSDE 2000) SP3a 提供合併模組以支援使用合併模組的現有應用程式。應寫入新應用程式的「安裝程式」公用程式以呼叫 MSDE 2000「安裝程式」公用程式，而不是直接使用 MSDE 2000 合併模組。

判定 MSDE 2000 之執行個體是否可以使用 Desktop Engine SP3a 升級到 SP3a 的相關指示，請參閱 2.1 節〈下載及解壓縮 Desktop Engine (MSDE 2000) SP3a〉。即使您是從 SQL Server 2000 SP3a 光碟來套用 Desktop Engine SP3a，也請閱讀 2.1 節中的指示，以判定您是否可以套用 Desktop Engine SP3a 或您必須連絡應用程式廠商以取得修補檔案。

若電腦中具有多個 MSDE 2000 的執行個體，您必須個別評估每一個執行個體，以判定您是否可以套用 Desktop Engine SP3a。您必須分別將 SP3a 套用到每一個執行個體。

如果有以下情況，請檢閱此讀我檔案第 1 及 2 節的內容，並且遵循第 3 節的指示：

- 已判定您可以套用 Desktop Engine SP3a 到現有 MSDE 的執行個體。
- 您要安裝新 MSDE 2000 的執行個體。
- 您要將 Desktop Engine SP3a 檔案合併到應用程式的安裝程式公用程式中。

以下數節提供的範例為將 MSDE 現有執行個體升級至 SP3a 或安裝 MSDE 2000 SP3a 新執行個體的常見狀況：

- 3.7.4 升級現有 MSDE 2000 的執行個體到 SP3a
- 3.7.5 安裝 MSDE 2000 SP3a 的新執行個體
- 3.7.6 將 MSDE 1.0 升級到 MSDE 2000 SP3a

## 1.3 移除 SP3a

移除 SQL Server 2000 SP3a 的方式需視正在移除的 SQL Server 2000 SP3a 元件而定。

##### 移除 SQL Server Database Components 和 Desktop Engine SP3a

SQL Server Database Components SP3a 或 Desktop Engine SP3a 在安裝之後，會基於維護理由來變更系統資料表，也會升級身為複寫拓樸成員的使用者及散發資料庫。因為這些變更而無法輕易移除 SP3a。若要還原至在安裝 SP3a 之前所執行的建置版本，首先必須解除安裝 SQL Server 2000 Database Engine 或 MSDE 2000 的執行個體；接著必須重新安裝該執行個體。如果執行的是前一版的 SQL Server 2000 Service Pack 或已套用任何 Quick Fix Engineering (QFE) 修正檔，則必須將該 Service Pack 及任何 QFE 修正檔重新套用至該執行個體。

附註 若要移除 SP3a，必須具有 master、model 和 msdb 資料庫的備份，這些資料庫在套用 SP3a 之前會立即被移走。相關資訊，請參閱 3.1 節〈備份 SQL Server 資料庫〉及 3.2 節〈備份 Analysis Services 資料庫和儲存機制〉。

相關資訊，請參閱〈解除安裝 SQL Server 2000 元件和 Desktop Engine SP3a〉。

##### 移除 SQL Server Analysis Services Components SP3a

若希望將 SQL Server Analysis Services 返回其 SP3a 之前的狀態，您必須在安裝 SP3a 之前，先備份登錄機碼 HK_LOCAL_MACHINE\Software\Microsoft\OLAP Server 及其所有子機碼。當解除安裝 SP3a 時，必須刪除此登錄機碼並從備份還原 SP3a 之前的版本。

附註 在 SP3a 安裝過程中對 MDAC 2.7 SP1a 所做的更新將無法解除安裝。

相關資訊，請參閱〈解除安裝 SQL Server 2000 Analysis Services SP3a〉。

## 1.4 識別 SQL Server 或 Analysis Services 目前的版本

使用下列章節的技術來判定已安裝的 SQL Server 或 Analysis Services 版本。

##### SQL Server

若要識別已安裝的 SQL Server 2000 Database Engine或 MSDE 2000 版本，請使用 osql 或 isql 公用程式在命令提示字元或在 SQL Query Analyzer 的 [Query] 視窗中鍵入 `SELECT @@VERSION` 或 `SERVERPROPERTY('ProductVersion')`。

同樣地，所提供的 SQL Server 2000 Database Engine 或 MSDE 2000 版本的產品層級可透過執行 `SELECT SERVERPROPERTY('ProductLevel')` 來判定。

下表顯示 SQL Server 2000 版本和層級，與由 `@@VERSION` 所報告的版本號碼，以及由 `SERVERPROPERTY('ProductLevel')` 所報告的產品層級之間的關係。

SQL Server 2000 版本和層級 | @@VERSION | 產品層級
SQL Server 2000 Original Release | 8.00.194 | RTM
Database Components SP1 或 Desktop Engine SP1 | 8.00.384 | SP1
Database Components SP2 或 Desktop Engine SP2 | 8.00.534 | SP2
Database Components SP3 或 SP3a，或 Desktop Engine SP3 或 SP3a | 8.00.760 | SP3

如果您不確定正在執行的 SQL Server 2000 Database Engine 或 MSDE 2000 是哪一版，請檢視 `SELECT @@VERSION` 所傳回之輸出資料的最後一行。最後一行應該符合下列其中一項：

    Desktop Engine on Windows NT 5.0 (Build 2195: Service Pack 2)
    Enterprise Evaluation Edition on Windows NT 5.0 (Build 2195: Service Pack 2)
    Developer Edition on Windows NT 5.0 (Build 2195: Service Pack 2)
    Personal Edition on Windows NT 5.0 (Build 2195: Service Pack 2)
    Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 2)
    Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 2)

附註 每行的開頭指出 SQL Server Database Engine 或 MSDE 2000 的版本。接著是目前作業系統的資訊。

您也可以使用 osql 或 isql 公用程式在命令提示字元或 SQL Query Analyzer 的 [Query] 視窗中鍵入 `SELECT SERVERPROPERTY('Edition')` 來判定版本。

##### Analysis Services

若要識別您已安裝的 Analysis Services 版本，請遵循下列步驟：

1. 從 [開始] 功能表中，依序指向 [程式集]、[SQL Server 2000] 及 [Analysis Services]，再按一下 [分析管理員]。
2. 在 [分析管理員] 樹狀目錄中的 [Analysis Servers] 節點上按一下滑鼠右鍵，再按一下 [關於 Analysis Servers]。
3. 使用下表來判定所擁有的 Analysis Services 版本。

Analysis Services 版本 | 在 [說明] [關於] 中的版本號碼
SQL Server 2000 Analysis Services Original Release | 8.0.194
Analysis Services SP1 | 8.0.382
Analysis Services SP2 | 8.0.534
Analysis Services SP3 或 SP3a | 8.0.760

##### 辨別 SP3 及 SP3a

若要判定您安裝的是 SP3 還是 SP3a，請看網路程式庫檔案 (Ssnetlib.dll) 的版本號碼。如果該檔案中的版本號碼為 2000.80.760.0，則是 SP3；如果該檔案中的版本號碼為 2000.80.766.0，則是 SP3a。

假設您使用預設設定來安裝執行個體，則您可以在以下其中一個位置找到 Ssnetlib.dll 檔案：

- 預設執行個體：C:\Program Files\Microsoft SQL Server\Binn\Ssnetlib.dll
- 具名的執行個體：C:\Program Files\Microsoft SQL Server\MSSQL$<InstanceName>\Binn\Ssnetlib.dll

若要瞭解您是否具有 SP3 或 SP3a 安裝程式資料夾，請開啟 SP3Readme.htm 檔案，並閱讀第一頁。Service Pack 版本 (SP3a 或 SP3) 列在第一頁的頂端。

## 1.5 其他關於 SP3a 的資訊

此 Service Pack 中所含的修正檔清單將在 Microsoft Knowledge Base 文章 306908 中提供。306908 當中所列的每個修正檔都有一個連接到描述該修正檔所解決之問題的 Knowledge Base 文章連結。請遵循各個 Knowledge Base 文章的連結以查看每個修正檔的相關資訊。

尋找 Knowledge Base 中的文章

1. 從 [Select a Microsoft Product] 清單中選取 [SQL Server 2000]。
2. 在 [Search for...] 欄位中，鍵入想要的文章號碼。
3. 在 [Search Type] 下選取 [Article ID]。
4. 按一下 [Go] 按鈕。

任何與 SQL Server 2000 Service Pack 3a 相關，但未能即時涵蓋於此讀我檔案中的資訊，將在 Microsoft Knowledge Base 文章 816502 中發行。

您可以在 Microsoft Product Support Services Knowledge Base 中找到此讀我檔案所提及的 Knowledge Base 文章。

#### Microsoft Data Access Components

此 Service Pack 包含 Microsoft Data Access Components (MDAC) 的更新，其中包括 MSXML 的更新。

相關資訊，請參閱 5.5.1 節〈Microsoft Data Access Components 的更新〉。

#### QFE 修正檔

所有公開發行的 SQL Server 2000 SP2 安全性公告均已於 SP3a 中詳細說明。

如果您是在 2002 年 10 月 14 日之後收到 SQL Server 2000 Hotfix，則該 Hotfix 可能不會涵蓋在 SP3a 中。請連絡您的主要支援提供者，以取得與 SQL Server 2000 SP3a 相同之 Hotfix 的相關資訊。

#### SQL Server CE Server 工具更新

已升級或計劃將 SQL Server 2000 資料庫和發行者伺服器升級至 SP3 或以上版本的 Microsoft SQL Server 2000 Windows® CE Edition (SQL Server CE) 使用者，也應該更新 Microsoft Internet Information Services (IIS) 伺服器上的伺服器複寫元件。可於 Microsoft 網站取得已更新的 SQL Server CE Server 工具安裝程式。

## 1.6 更新的線上叢書文件集已發行

SP3 及 SP3a 更新的文件集已發行。《SQL Server 2000 線上叢書》(最新版 - SP3) 包含次要修訂以及與 SP3 及 SP3a 相關的新資訊。

您可從此 Microsoft 網站下載《SQL Server 2000 線上叢書》(最新版 - SP3)。

## 1.7 更新的 SQL Server 和 Analysis Services 範例已發行

已更新為 SP3 及 SP3a 的 SQL Server 2000 Database Engine及 Analysis Services 的範例已發行。您可從此 Microsoft 網站下載這些更新的範例。

# 2.0 下載及解壓縮 SP3a

SP3a 會以下列方式散發：

- SQL Server 2000 Service Pack 3a 光碟，其中包含下列元件的 Service Pack：
  - Database Components SP3a
  - Analysis Services SP3a
  - Desktop Engine SP3a
- 三個自解壓縮的檔案，可從網際網路上的 Microsoft SQL Server 下載專區下載：
  - CHT_Sql2ksp3.exe (Database Components SP3a)
  - CHT_Sql2kasp3.exe (Analysis Services SP3a)
  - CHT_Sql2kdesksp3.exe (Desktop Engine SP3a)

附註 SQL Server 2000 Service Pack 3a 光碟和 CHT_Sql2kdesksp3.exe 都包含安裝新 Desktop Engine 執行個體所需的所有檔案。

附註 下載的 SP3a 檔案具有與 SP3 檔案相同的名稱。

如果您有 SP3a 光碟，您可以直接從光碟來安裝 SP3a。

如果您沒有 SP3a 光碟，您可以下載適當的檔案再予以執行。當您在電腦上執行下載的檔案，電腦會在具有與 SP3a 光碟上之資料夾及檔案相同組織的磁碟上，建立資料夾及檔案集。在檔案解壓縮階段完成後，您就可以在磁碟的資料夾上安裝 SP3a。

當您從網際網路下載並解壓縮 SP3a 安裝檔案時，請遵循以下說明：

- 下載 2.0 節中所列的其中一個檔案，並將自解壓縮檔放置於要升級到 SP3a 之執行 SQL Server 2000 軟體的電腦上之資料夾，或放到網路共用位置的資料夾中。從該資料夾執行檔案。自解壓縮程式會提示您輸入希望放置 Service Pack 檔案的資料夾名稱。

  附註 當您將 Service Pack 解壓縮至網路共用位置時，所指定的資料夾路徑與您執行自解壓縮程式的資料夾是有關聯的。

- 在您下載 Service Pack 安裝檔案的本機磁碟或網路共用上，必要的可用空間大約是自解壓縮檔案大小的三倍。這包括存放自解壓縮檔案的空間、存放解壓縮的 Service Pack 檔案的空間，以及自解壓縮程式本身所需要的暫時工作空間。
- 解壓縮元件後，您可以重新命名或移動該資料夾；不過，請確定目錄路徑名稱沒有包含空格。每個自壓縮檔案可以使用相同的目標資料夾；它們將不會互相覆寫或互相干擾。
- 自解壓縮檔案的作用為在電腦上建置一組與 SP3a 光碟中相同的目錄及檔案。如果您下載 SP3a，則必須先解壓縮檔案來建置 Service Pack 目錄後，才能執行「SQL Server 安裝程式」。
- 對於 Database Components SP3a 和 Analysis Services SP3a，其安裝程序與光碟和解壓縮的檔案相同。

附註 Service Pack 中的部份檔案為系統檔案。除非遵循此步驟，否則您無法檢視這些檔案：在 [Windows 檔案總管] 中的 [檢視] 功能表上，按一下 [選項]，再按 [檢視] 頁籤，並選取 [顯示所有檔案] 核取方塊。

##### 判定 SQL Server 2000 Database Engine 或 MSDE 2000 執行個體之語言的方法

SQL Server 2000 Service Pack 有特定語言。若要升級 SQL Server 2000，您必須下載並套用具有與您 SQL Server 2000 軟體相同語言的 Service Pack。例如，若您要升級使用日文的 MSDE 2000 執行個體，則您必須下載 Desktop Engine SP3a 的日文版本。

若您不確定 SQL Server 2000 Database Engine 或 MSDE 2000 之執行個體的語言：

- 依序按一下 [開始] 及 [執行]。
- 在 [開啟] 方塊中鍵入 [Regedit]，再按一下 [確定]。
- 找出並選取下列其中一個機碼：
  - 若是 SQL Server 2000 Database Engine 或 MSDE 2000 的預設執行個體，請找出並選取此機碼：

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion

  - 若是 SQL Server 2000 Database Engine 或 MSDE 2000 的具名執行個體，請找出並選取此機碼：

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\InstanceName\CurrentVersion

    InstanceName 是執行個體的名稱。

- 在右方窗格中，讀取 Language 登錄值。將該值與以下表格比較，以判定您 SQL Server 2000 Database Engine 或 MSDE 2000 之執行個體的語言：

  Language 登錄值 (十六進位) | Language 登錄值 (十進位) | 執行個體的語言
  0x00000404 | 1028 | 繁體中文
  0x00000407 | 1031 | 德文
  0x00000409 | 1033 | 英文
  0x0000040a | 1034 | 西班牙文
  0x0000040c | 1036 | 法文
  0x00000410 | 1040 | 義大利文
  0x00000411 | 1041 | 日文
  0x00000412 | 1042 | 韓文
  0x00000413 | 1043 | 荷蘭文
  0x00000416 | 1046 | 葡萄牙文 (巴西)
  0x0000041d | 1053 | 瑞典文
  0x00000805 | 2053 | 簡體中文

##### Database Components 及 Analysis Services SP3a 檔案

Database Components 及 Analysis Services 安裝檔案都會包含更新的安裝程式文件，您可以在 SP3a 安裝期間，按一下 [說明] 來存取該份文件。此份文件不會針對已安裝在電腦上的《SQL Server 2000 線上叢書》版本進行更新。若需如何取得《SQL Server 線上叢書》最新版本的相關資訊，請參閱 1.6 節〈更新的線上叢書文件集已發行〉。如果您只要存取更新的 SQL Server 2000 SP3a 安裝程式文件，而不要更新《SQL Server 線上叢書》，請執行 Setupsql.chm 檔案。Setupsql.chm 位於 SP3a 光碟本機目錄的 \Books 子資料夾中，或位於包含已解壓縮之 Service Pack 檔案的網路共用。

## 2.1 下載及解壓縮 Desktop Engine (MSDE 2000) SP3a

擁有 MSDE 2000 現有執行個體的使用者必須瞭解其 MSDE 2000 執行個體的安裝方式，以進一步了解修補的方式。您可以遵循 Microsoft Knowledge Base 文章 311762 的指示，藉由在登錄機碼中記錄為 ProductCode 項目的資訊來判定其安裝方式。

- 如果 ProductCode 值的原始封包名稱為 SqlRun01.msi 至 SqlRun16.msi，則您可以使用 SQL Server 2000 SP3a 下載檔案來升級您的 MSDE 2000 執行個體。請參閱前文，以取得判定 MSDE 2000 執行個體的語言的資訊。
- 如果 ProductCode 值的原始封包名稱與 Microsoft 應用程式有關，請參閱下一頁，以取得升級該 MSDE 2000 執行個體的指示： Microsoft MSDE Applications Web page
- 如果 ProductCode 值未列在文章之中，這代表執行個體是由應用程式的安裝程式公用程式所安裝的。您無法使用 SQL Server 2000 SP3a 下載檔案以將 SP3a 套用到此類型的 MSDE 執行個體。相反地，您必須從撰寫該應用程式的廠商取得修補檔案。如果應用程式來自 Microsoft 以外的廠商，您必須連絡該廠商以取得修補檔案。如果應用程式來自 Microsoft，請參閱下一頁，頁中列出來自 Microsoft 的 MSDE 應用程式 (本頁將會更新如何升級 MSDE 2000 執行個體的資訊)： Microsoft MSDE Applications Web page
- 如果 ProductCode 值的原始封包名稱是 Sample.msi 或 SampleUpg.msi，請參閱 Knowledge Base 文章 314131。

##### 下載 MSDE 2000 SP3a

如果您的 MSDE 2000 執行個體是使用 MSDE 安裝程式公用程式來安裝的 (原始封包名稱為 SqlRun01.msi 至 SqlRun16.msi)，您就可以使用 SQL Server 2000 SP3a 下載檔案來升級您的 MSDE 2000 執行個體：

- 請至 Microsoft SQL Server Downloads Web site。
- 在此頁右上方的 [Full Download] 方塊中，選取符合您的 MSDE 2000 執行個體的語言，再按一下 [Go]。
- 在下一頁的頁面底部尋找 [Files in this Download] 區段。依據語言來選取其中一個檔案：
  - 若您選擇英文，請將 SQL2KDeskSP3.exe 檔案下載到電腦的資料夾中。
  - 若您選擇其他語言，請下載 LLL_SQL2KDeskSP3.exe 檔案，其中 LLL 依語言而有所不同。

##### 解壓縮 MSDE 2000 SP3a 檔案

在下載 CHT_SQL2KDeskSP3.exe 或 LLL_SQL2KDeskSP3.exe 之後，您必須將 MSDE 2000 SP3a 檔案解壓縮：

- 開啟 [Windows 檔案總管] 並瀏覽至您存放 MSDE 2000 SP3a 下載檔案 (CHT_SQL2KDeskSP3.exe 或 LLL_SQL2KDeskSP3.exe，LLL 依語言而有所不同) 的資料夾。
- 連按兩下下載檔案以將 SP3a MSDE 檔案解壓縮。當出現提示時，請指定要對 SP3a 檔案進行解壓縮的資料夾。

# 3.0 安裝 Service Pack

若要安裝 SP3a，請使用下列章節中的安裝指示。並不是所有步驟都是必要的，這要視套用 Service Pack 的是哪些 SQL Server 2000 元件或組態而定：

- 資料庫元件
- Analysis Services
- Desktop Engine
- 容錯移轉叢集
- 複寫伺服器

在下列各節中的第一個句子會指出該章節套用的元件。

##### 開始安裝之前

若您的 SQL Server 2000 Database Engine 或 MSDE 2000 執行個體是為應用程式所使用，首先請洽應用程式的廠商以確認是否有該應用程式特定的 Database Engine 或 MSDE 2000 升級注意事項。

如果下列任一安全性原則設為「不允許安裝」，則將無法安裝 SP3a：

- Windows XP 的「裝置：未簽署的驅動程式安裝運作方式」本機安全性原則
- Windows 2000 的「未簽署的非驅動程式安裝運作方式」本機安全性原則

如果您使用「不允許安裝」設定，則您必須在安裝 SP3a 前將之變更為「無訊息式安裝」。您可以在安裝完成之後，視需要將該原則還原回其先前的設定。

附註 「不允許安裝」並非這些安全性原則的預設設定。

當您在執行 Windows XP 的電腦上安裝 SQL Server 2000 SP3a，MDAC 2.7 將不會更新到 MDAC 2.7 Service Pack 1a (SP1a)。若您的系統需要任何包含在 MDAC 2.7 SP1a 中的修正檔，您必須在安裝 SQL Server 2000 SP3a 之前，先套用 Windows XP Service Pack 1。Windows XP SP1 將套用所有包含在 MDAC 2.7 SP1a 中的修正檔。

當在 Microsoft Windows Server 2003 建置 3683 或更早的發行前版本上安裝此 Service Pack，則會收到下列錯誤訊息：

    您正在安裝的程式尚未通過 Windows 標誌測試以確認它與 Windows XP 的相容性。將不會安裝這個軟體，請連絡您的系統管理員。

您可以選擇忽略此訊息。按一下 [確定] 繼續安裝程式。

附註 此訊息會封鎖自動安裝。

當您在執行 Windows NT 4.0 Service Pack 6a 的電腦上安裝此 Service Pack，則必須套用 Microsoft Knowledge Base 文章 258437 中所描述的 Hotfix。

在 Windows NT 4.0 的法文版上安裝 SP3a 之前，請遵照 Knowledge Base 文章 259484 中的指示。您可以從 Microsoft Product Support Services Knowledge Base 存取此文章。若需搜尋 Knowledge Base 的相關指示，請參閱 1.5 節〈其他關於 SP3a 的資訊〉。

##### 在開始安裝資料庫元件之前

如果在同時安裝有 Analysis Services 的電腦上將 Database Components SP3a 套用至 SQL Server 的執行個體，則當執行指令碼 Sp3_serv_uni.sql 時，安裝程式可能會失敗。如果發生此情況，請重新啟動電腦並再次執行安裝程式。

- 除非使用者資料庫為複寫拓樸的一部份，否則 SQL Server 2000 Service Pack 不會影響從 SQL Server 2000 或 MSDE 2000 的一個版本 (原始版本或 Service Pack) 備份使用者資料庫並在其他版本上還原該資料庫的能力。如果使用者資料庫不是複寫拓樸的一部份，則您可以從執行任何 SQL Server 2000 或 MSDE 2000 版本的執行個體上將其備份，並在執行任何其他 SQL Server 2000 或 MSDE 2000 版本的執行個體上將其還原。已在 5.3.6 節〈合併複寫的備份及還原問題 〉中詳細說明複寫的其他注意事項。

「SP3a 安裝程式」會升級身為複寫拓樸成員的使用者資料庫。安裝 SP3a 前，請先確認複寫資料庫及檔案群組是可寫入的，而且執行安裝的使用者帳戶擁有存取資料庫的權限。若需將 SP3a 套用至涵蓋在覆寫拓樸中的資料庫的相關資訊，請參閱 3.11 節〈在複寫的伺服器上安裝〉。

如果「SP3a 安裝程式」偵測到任何無法寫入的使用者資料庫或檔案群組，則會：

- 將 SP3a 複寫更新套用至所有可寫入的使用者資料庫。
- 將無法寫入的資料庫清單寫入安裝記錄中，其位於 Winnt\Sqlsp.log。
- 顯示下列警告訊息：

      安裝程式偵測到系統中有一或多個無法寫入的資料庫或檔案群組。

除非列在安裝記錄中的部份資料庫為複寫拓樸的成員，否則無法忽略此項警告。如果任何列於安裝記錄中的無法寫入資料庫為複寫拓樸的成員，則您必須將那些資料庫設為可寫入的狀態，並重新將「SP3a 安裝程式」套用至 SQL Server 2000 的執行個體中。

附註 此訊息不會影響自動安裝。若需自動安裝的相關資訊，請參閱 4.1 節〈自動安裝〉。

若需將資料庫設為可寫入狀態的相關資訊，請參閱 3.12 節〈將 SP3a 套用至唯讀資料庫或檔案群組〉。若需重新套用 SP3a 的相關資訊，請參閱 3.14 節〈重新套用 SP3a〉。

因為無法寫入的資料庫不會再造成安裝失敗，所以不需要在升級至 SP3a 之前移除記錄傳送。然而，如果資料庫正在傳送記錄到身為複寫發行者的資料庫，則您必須：

1. 在套用 SP3a 之前讓資料庫離線。
2. 套用 SP3a 至執行個體。
3. 讓資料庫重新上線。
4. 登入到 Query Analyzer 並執行下列指令碼：

       USE master
       GO
       EXEC sp_vpupgrade_replication
       GO

若您在套用 SP3a 時，未讓所有無法寫入的資料庫離線，以致其傳送記錄到發行資料庫，則您將收到此錯誤訊息：

執行 Script sp_vpupgrade_replication (1) 發生錯誤

若您收到此錯誤訊息，請遵循上述程序。

附註 在安裝期間，「安裝程式」將無法區分唯讀資料庫和離線或可疑的資料庫。在安裝期間，若複寫的資料庫或檔案群組出現任何這類狀況且和複寫拓樸有關，則必須在將資料庫設為可寫入的狀態後，重新套用 Service Pack。

附註 因為無法寫入的資料庫不會再造成安裝失敗，所以不需要在升級至 SP3a 之前移除記錄傳送。

##### 準備 Systems Management Server 散發式安裝

您無法遠端安裝 SQL Server 2000 Service Pack 3a。然而，您可以使用 Microsoft Systems Management Server 在多部執行 Windows NT Server 4.0 的電腦上自動安裝 SP3a。若要進行此項作業，您必須使用可在 Systems Management Server 中自動建立 SQL Server 封裝的封裝定義檔 (Smssql2ksp3.pdf)。然後，SQL Server 封裝便可散發並安裝在執行 Systems Management Server 的電腦上。Sms2kdef.bat 檔案是批次檔，會啟動使用 Systems Management Server 的自動安裝。在此類的安裝當中，「安裝程式」會自動偵測所需的相關系統資訊，且不需要使用者輸入。

附註 您無法使用 Systems Management Server 安裝 Desktop Engine SP3a。

## 3.1 備份 SQL Server 資料庫

下列資訊適用於所有元件的安裝，資料庫用戶端元件除外。

在安裝 Database Components SP3a 或 Desktop Engine SP3a 之前，請先備份 master、msdb 及 model 資料庫。安裝 SP3a 會修改 master、msdb 及 model 資料庫，這會造成上述資料庫與 SQL Server 的前 SP3 版本不相容。如果您決定重新安裝 SQL Server 2000 (不含 SP3 或 SP3a)，則需要這些備份。

儘管 SP3a 只會在身為複寫拓樸成員的使用者資料庫中執行更新，但是備份您的使用者資料庫是比較謹慎的做法。

## 3.2 備份 Analysis Services 資料庫和儲存機制

下列資訊僅適用於 Analysis Services。

在安裝 Analysis Services SP3a 之前，請先複製您的 Microsoft Analysis Services\Data 資料夾 (此資料夾預設安裝於 C:\Program Files 資料夾下) 來備份 Analysis Services 資料庫。如果您並未將 Analysis Services 儲存機制移轉到 SQL Server，請備份位於 Microsoft Analysis Services\Bin 資料夾中的 Msmdrep.mdb 檔案。您也可以透過執行 Regedit.exe，並使用 [登錄] 功能表上的 [匯出登錄檔案] 項目，將機碼 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLAP Server 匯出成檔案來進行備份，進而儲存 Analysis Server 登錄項目。如果您已將 Analysis Services 儲存機制移轉至 SQL Server，請在安裝 SP3a 之前備份包含儲存機制的資料庫。相關資訊，請參閱〈解除安裝 SQL Server 2000 Analysis Services SP3a〉。

## 3.3 確定系統資料庫有足夠的可用空間

下列資訊適用於所有元件安裝，資料庫用戶端元件和 Analysis Services 除外：

如果未選取 master 及 msdb 資料庫的 autogrow 選項，則資料庫至少必須有 500 KB 的可用空間。若要確認它們有此空間，請對 master 或 msdb 資料庫執行 sp_spaceused 系統預存程序。如果任一個資料庫中的未配置空間少於 500 KB，請增加資料庫的大小。相關資訊，請參閱《SQL Server 線上叢書》的〈擴充資料庫〉。

如果已選取 master 及 msdb 資料庫的 autogrow 選項，而且磁碟機上有足夠的空間，則可略過此步驟。

若要確認是否已在 SQL Server 2000 中選取 autogrow 選項，請開啟 SQL Server Enterprise Manager，在資料庫的圖示上按一下滑鼠右鍵，再按一下 [內容]。確認已勾選 [檔案自動成長] 核取方塊。

若要在 MSDE 2000 中驗證是否已選取此選項，請使用 osql 命令提示字元公用程式來發出下列 SQL 陳述式：

- sp_helpdb master
- sp_helpdb msdb

在這些陳述式的輸出中，請確認成長欄位的值不是 0。

## 3.4 執行 SP3a 安裝程式前先停止服務及應用程式

下列資訊適用於所有元件。

您可以在不關閉服務的情況下，套用 SP3a。如果您不關閉服務，安裝完成時將會提示您重新開機。若不重新開機，下列服務將無法啟動：

- Microsoft Distributed Transaction Coordinator (MS DTC) 及 Microsoft Search 和 MSSQLServerOLAPService 服務。
- 要升級執行個體的 MSSQLServe 和 SQLServerAgent 服務 (例如 MSSQL$NamedInstance)。
- Microsoft Component Services、Microsoft Message Queuing 及 Microsoft COM Transaction Integrator。
- 所有應用程式，包括「控制台」。(選擇性)

您可以在套用 SP3a 之前先停止以上服務及應用程式，即可在不重新啟動電腦的情況下套用 SP3a。

您無法在叢集環境中停止服務。相關資訊，請參閱 3.10 節〈在容錯移轉叢集上安裝〉。

## 3.5 安裝 Database Components SP3a

下列資訊適用於所有元件安裝，Desktop Engine 和 Analysis Services 除外。

從下列其中一個位置執行 Setup.bat 指令碼：

- 包含從 CHT_SQL2KSP3.exe 解壓縮的 Service Pack 檔案之本機電腦上的目錄。
- SQL Server 2000 SP3a 光碟上的 Service Pack 目錄。
- 包含從 CHT_SQL2KSP3.exe 解壓縮的 Service Pack 檔案之網路共用位置上的目錄。

附註 若要從網路共用位置安裝資料庫元件，您必須先進行下列其中一個動作：

- 將包含解壓縮的 Service Pack 檔案之網路共用位置對應到本機電腦上可用的磁碟機代號，瀏覽至對應磁碟機上包含 Setup.bat 的目錄，再執行 Setup.bat。
- 執行在 \X86\Setup 中找到的 Setupsql.exe 檔案來啟動安裝程式，該資料夾是包含解壓縮的 Service Pack 檔案之網路共用位置上的目錄子資料夾。

安裝程式會顯示一個提示您提供資訊的對話方塊，例如，您是要使用「SQL Server 的帳戶驗證」還是「Windows 的帳戶驗證」。如果您選擇「SQL Server 的帳戶驗證」，則必須將「安裝程式」sa 登入密碼提供給「安裝程式」。如果您選擇「Windows 的帳戶驗證」，則您必須在使用 Windows 登入帳戶登入 Windows 時執行「安裝程式」。此登入帳戶必須是正在升級之 SQL Server 2000 執行個體，其 sysadmin 固定伺服器角色的一部份。

安裝程式之後會進行下列工作：

- 如果偵測到安裝程式正在使用「混合模式驗證」，且 sa 的登入密碼是空白的，則會顯示 [驗證模式] 對話方塊。將 sa 登入密碼留白會讓使用者很容易就可以系統管理模式存取 SQL Server 或 Desktop Engine，所以並不建議使用；請強制使用 sa 密碼或使用「Windows 的帳戶驗證」來保護系統。如需更瞭解此對話方塊，請參閱此節稍後的〈驗證模式對話方塊〉。
- 如果偵測到 sa 登入密碼是空白的，則會顯示 [SA 密碼警告] 對話方塊。雖然您可以明白選擇略過建議並以空白的 sa 登入密碼來繼續安裝程式，但空白的密碼會造成安全性的風險，所以不建議使用。不管使用哪種驗證模式，都會顯示此對話方塊。

  附註 此密碼會立即變更；即使安裝失敗，該密碼仍會變更。

- 顯示 [回溯相容性檢查清單] 對話方塊，以在套用 Service Pack 的過程中，警告可能遇到的任何回溯相容性問題。若需更瞭解此對話方塊，請參閱此章節稍後的〈回溯相容性檢查清單對話方塊〉。
- 若偵測到任何資料庫或檔案群組是無法寫入的狀態時，則會顯示對話方塊。此時如果有任何資料庫或檔案群組為複寫拓樸的一部份，則您可以：
  - 停止安裝程序，將這些物件設為可寫入的狀態並重新啟動安裝。
  - 繼續目前的 SP3a 安裝程序，並在將物件設為可寫入的狀態之後再重新套用 SP3a。

  附註 前幾個步驟只有在將 SP3a 套用至無法寫入的資料庫或為複寫拓樸部份的檔案群組時才需要。相關資訊，請參閱 3.12 節〈將 SP3a 套用至唯讀資料庫或檔案群組〉。

- 顯示 [錯誤報告] 對話方塊，其中包含如何啟用包含在 SP3a 的新錯誤報告功能的相關資訊。若需錯誤報告的相關資訊，請參閱 5.10 節〈錯誤報告〉。
- 視需要更新 MDAC 元件。相關資訊，請參閱 5.5.1 節〈Microsoft Data Access Components 的更新〉。
- 以 SP3a 檔案取代現有的 SQL Server 2000 檔案。
- 執行 Transact-SQL 指令碼檔案以更新系統預存程序。
- 如果「安裝程式」決定要重新開機，則會在最後的對話方塊中顯示重新要開機的選項。

#### 驗證模式對話方塊

「驗證模式」對話方塊不是目前安裝設定的預設值。對話方塊的預設值如下：

- 在執行 Windows 98 或 Windows Millennium Edition 的電腦上，預設設定為「混合模式驗證」(此為這些作業系統上唯一支援的驗證模式)。對話方塊將提示您指定 sa 登入密碼。如果指定密碼，則安裝程式會變更 sa 登入密碼。如果將密碼留空，則安裝程式會在不變更密碼的情況下進行連線。
- 在執行 Windows NT 4.0 或 Windows 2000 的電腦上，預設設定為「Windows 的帳戶驗證」。使用此對話方塊可切換到 sa 的登入密碼不是空白的「Windows 的帳戶驗證模式」或「混合模式」。

  附註 在變更驗證模式或 sa 的登入密碼之前，請先確定這項變更不會影響現有的應用程式。例如，如果您將使用「混合模式驗證」的 SQL Server 執行個體變更為僅使用「Windows 的帳戶驗證」，則嘗試使用「SQL Server 的帳戶驗證」來連接的現有應用程式將無法連接，除非驗證模式改為使用「Windows 的帳戶驗證」。此外，如果您變更 sa 登入密碼，則使用舊密碼的應用程式或管理處理程序將無法連接，除非將之改為使用新密碼。

  重要事項 基於安全性的理由，絕對不要在 sa 登入上使用空白密碼。

「安裝程式」會將所進行的動作記錄置放於 Sqlsp.log 檔案中。此記錄檔存放在「安裝程式」所執行之電腦的 Windows 目錄中。如果您升級了多個執行個體，則只有最近的升級會記錄在此記錄檔中。

#### 回溯相容性檢查清單對話方塊

[回溯相容性檢查清單] 對話方塊會列出在套用 Service Pack 時您可能會遇到的回溯相容性問題。出現在檢查清單上的回溯相容性問題會依所升級之 SQL Server 2000 其執行個體的組態而有所不同。

此對話方塊中可能會提出下列回溯相容性問題：

- 當從 SP2 或更早版本進行升級時，SP3a 會升級 Microsoft Search 服務並自動為所有使用該項服務的應用程式重新建置全文檢索目錄。重新建置期間，可能無法提供完整的全文檢索功能。您必須在繼續「安裝程式」之前選取此核取方塊。相關資訊，請參閱 5.1.5 節〈全文檢索目錄在安裝完成之後重新建置〉。
- 在套用 Service Pack 之前，必須先升級您的 SQL Server 2000 主要/目標伺服器組態。SP3a 中所介紹的增強功能僅與執行 SQL Server 2000 SP3 或 SP3a 的伺服器相容。您必須在繼續「安裝程式」之前選取此核取方塊。相關資訊，請參閱 5.4.2 節〈主要/目標伺服器組態的變更〉。
- 跨資料庫擁有權鏈結在此 Service Pack 預設為關閉。安裝之後，您可以為個別的資料庫啟用跨資料庫擁有權鏈結。選取此選擇性的核取方塊可讓您啟用所有資料庫的跨資料庫擁有權鏈結。相關資訊，請參閱 5.1.11 節〈跨資料庫擁有權鏈結〉。

  附註 不建議您啟用所有資料庫的跨資料庫擁有權鏈結。

  附註 如果您已經在發行前的 SP3 (8.00.760 組建之前) 版本上啟用跨資料庫擁有權鏈結，則您在安裝 SP3a 發行版本後必須再重新啟用。

## 3.6 安裝 Analysis Services SP3a

下列資訊僅適用於 Analysis Services。

若要安裝 Analysis Services SP3a，請從下列其中一個位置執行 Setup.exe：

- 包含從 CHT_SQL2KASP3.exe 解壓縮之 Analysis Services SP3a 檔案之目錄的 Msolap\Install 子目錄。
- SP3a 光碟上的 Msolap\Install 目錄。

安裝程式之後會進行下列工作：

- 開啟提示您提供資訊的 [安裝程式] 對話方塊。
- 顯示 [錯誤報告] 對話方塊，其中包含如何啟用包含在 SP3a 的新錯誤報告功能的相關資訊。若需關於錯誤報告的詳細資訊，請參閱 5.10 節〈錯誤報告〉。
- 複製必要的檔案，然後完成安裝。

##### 其他 Analysis Services 安裝問題

安裝 Analysis Services SP3a 之後，您還必須升級任何用於遠端管理 SP3 或 SP3a 的電腦。否則，在您嘗試透過「分析管理員」進行遠端連接時會收到下列錯誤訊息：

    無法連線到伺服器 (server_name) 上的登錄，或者您並非這個伺服器 OLAP 管理員 (OLAP Administrators) 群組的成員。

Meta Data Services 已新增一個名為 RepositoryUser 的專用角色，這可用來存取及更新 msdb 資料庫中的儲存機制資訊。RepositoryUser 角色擁有 msdb 儲存機制上建立、讀取、更新、刪除和執行的權限。Public 角色已由此新角色所取代，且不再於此儲存機制上具備任何權限。當符合下列條件時，OLAP Administrators 群組必須新增至 RepositoryUser 角色，如此一來，此群組的成員即可在套用 Service Pack 之後存取該儲存機制：

- 儲存機制為 Meta Data Services 格式。
- 儲存機制使用 msdb 資料庫。
- OLAP Administrators 群組之前使用 public 角色存取儲存機制。

  附註 這項變更也會影響存取已升級至 SP3 或 SP3a 之伺服器上其 Meta Data Services 儲存機制的遠端伺服器。遠端伺服器的登入也必須加入 RepositoryUser 角色。

  附註 OLAP Administrators 群組必須在您還原先前為升級至 SP3 或 Sp3a 而備份的 Meta Data Services 儲存機制之前加入 RepositoryUser 角色；否則，該項還原操作將會失敗。

若需 RepositoryUser 角色的相關資訊，請參閱 5.6.3 節〈存取儲存機制資訊的新 RepositoryUser 角色〉。

如果「Analysis Services 資料」資料夾不在執行 Analysis Server 的電腦上，則您必須在執行「SP3a 安裝程式」之後，修改資料夾的權限。相關資訊，請參閱 5.2.10 節〈必須在遠端資料夾上修改權限〉。

## 3.7 安裝 Desktop Engine SP3a

下列資訊僅適用於 Desktop Engine (MSDE 2000)。

Desktop Engine SP3a 含有安裝或升級 SQL Server 2000 Desktop Engine (MSDE 2000) 執行個體所需的完整檔案集。您可以使用 Desktop Engine SP3a 的檔案來執行所有 MSDE 2000 安裝程式操作，前提是您需具有 安裝或升級 MSDE 2000 執行個體的授權。若需 MSDE 2000 授權的相關資訊，請參閱 Uses of MSDE 2000。

您可能無法將 Desktop Engine SP3a 套用到使用應用程式的安裝程式公用程式所安裝的 MSDE 2000 執行個體上。您必須連絡應用程式廠商以取得可用來升級這些 MSDE 2000 執行個體的修補檔案。若需判定 MSDE 2000 之執行個體是否屬於此目錄的相關指示，請參閱 2.1 節 〈下載及解壓縮 Desktop Engine (MSDE 2000) SP3a〉。

以下數節提供「MSDE 2000 SP3a 安裝程式」的重要背景資訊：

- 3.7.1 MSDE 2000 SP3a 的必要條件
- 3.7.2 MSDE 2000 SP3a 的安全性注意事項
- 3.7.3 MSDE 2000 安裝程式參數

以下數節涵蓋將 MSDE 現有執行個體升級至 SP3a 或安裝 MSDE 2000 SP3a 新執行個體的常見狀況：

- 3.7.4 升級現有 MSDE 2000 的執行個體到 SP3a
- 3.7.5 安裝 MSDE 2000 SP3a 的新執行個體
- 3.7.6 將 MSDE 1.0 升級到 MSDE 2000 SP3a

若需其他資訊，MSDE 2000 SP3a 安裝程式文件的主要來源是《SQL Server 2000 線上叢書》(最新版 - SP3)。有一些針對 MSDE 2000 SP3 及 SP3a 所作的變更未在《SQL Server 2000 線上叢書》(最新版 - SP3) 中完全記載；這些功能將包含於此讀我檔案中。若需安裝《SQL Server 2000 線上叢書》(最新版 - SP3) 的相關資訊，請參閱 1.6 節〈更新的線上叢書文件集已發行〉。

### 3.7.1 MSDE 2000 SP3a 的必要條件

下列資訊僅適用於 Desktop Engine (MSDE 2000)。

下列必要條件適用於 SQL Server 2000 Desktop Engine (MSDE 2000) SP3a 的安裝。

當升級 MSDE 2000 時，您必須分別將 Desktop Engine SP3a 套用到每一個 MSDE 2000 的執行個體。

附註 Microsoft 不支援一部電腦同時具有 16 個 Database Engine 執行個體的組態。這包含 SQL Server 6.5、SQL Server 7.0、SQL Server 2000、MSDE 1.0 及 MSDE 2000 的執行個體。

永遠藉由執行 Setup.exe 以開啟「MSDE 2000 安裝程式」。請勿透過直接執行任一個 MSDE 2000 .msi 檔案以開啟安裝程式，例如連按兩下任一個 MSDE 2000 .msi 檔案。您必須從命令提示字元來執行安裝程式，並且指定參數來安裝或升級任一 MSDE 的執行個體。若需必要參數的相關資訊，請參閱 3.7.2 至 3.7.6 節。

若您使用 Terminal Services 連線以試圖將現有的 MSDE 執行個體升級到 SP3a，或安裝新的 MSDE 2000 SP3a 執行個體，就可能會產生問題。如果遇到問題，請從本機電腦重新啟動安裝程式。

您必須知道您使用 MSDE 2000 SP3a 安裝程式來安裝或升級之 MSDE 執行個體的名稱。如果您正安裝或升級具名的 MSDE 執行個體，您必須使用 INSTANCENAME 參數來指定執行個體名稱。如果您不指定 INSTANCENAME，「安裝程式」會在您電腦的預設 MSDE 執行個體上運作。在 SP3 之前的「MSDE 2000安裝程式」版本中，使用者需指定用作安裝或升級 MSDE 2000 執行個體的.msi 安裝封裝檔案。在 SP3 及更新的「安裝程式」版本中，「安裝程式」會管理 .msi 檔案，而您不需為升級或新安裝指定 .msi 檔案。

您可以從硬碟、網路共用或光碟執行「MSDE 2000 SP3a 安裝程式」。當升級 MSDE 2000 執行個體至 SP3a 時，只有當用來安裝 MSDE 2000 執行個體的原始檔案仍出現於其原始安裝期間所在的位置，您才能從網路共用或光碟執行「安裝程式」。如果原始安裝是從光碟安裝，MSDE 2000 SP3a 安裝程式在升級期間會需要原始光碟。如果原始檔案不再存在於其原始位置，或找不到原始光碟，您必須將 MSDE 2000 SP3a 檔案複製到硬碟上，並從硬碟中執行「安裝程式」。

如果您建立自己的光碟來安裝 SP3a，則光碟上的磁碟區標籤必須是 SQL2KSP3。如果您是獨立軟體廠商 (Independent Software Vendor，ISV)，且製造光碟將 Desktop Engine 作為您的應用程式的元件來散發，則光碟磁碟區標籤必須和 Windows Installer 封裝 (*.msi) 的 Media 資料表中的 VolumeLabel 屬性相同。

僅在您使用 Windows Installer 2.0.2600.0 或以上版本時，您才可以從光碟安裝 Desktop Engine 的升級。若您需要升級 Windows Installer，SP3a 包含升級 Windows Installer 所需的檔案。

升級 Windows Installer：

1. 使用 [Windows 檔案總管]，在 SQL Server 2000 SP3a 光碟中或從 CHT_SQL2KDeskSP3.exe 解壓縮而來的資料夾中，瀏覽到 \MSDE\MSI 資料夾。
2. 執行 InstMsi20.exe。
3. 在出現提示時，請重新啟動電腦。

### 3.7.2 MSDE 2000 SP3a 的安全性注意事項

下列資訊僅適用於 Desktop Engine (MSDE 2000)。

已在 SP3a 中變更 MSDE 2000 0 安裝程式的運作方式，以確保預設設定更加的安全。

Desktop Engine SP3a 變更了 DISABLENETWORKPROTOCOLS 安裝程式參數的預設運作方式，此參數指定為 MSDE 2000 執行個體之網路連線支援的組態。若沒有在其他電腦上執行的應用程式會連線到您的 MSDE 2000 執行個體，則此執行個體不需要網路支援，且最好停用未使用的資源。當安裝新的 MSDE 2000 執行個體時，SP3a 會依預設關閉網路支援。若您在安裝 MSDE 2000 SP3a 執行個體時停用網路支援，您可以稍後再重新設定執行個體以啟用支援。若需停用及復原網路存取的相關資訊，請參閱 Microsoft Knowledge Base 文章 814130。

依預設，MSDE 2000 SP3a 安裝程式不會安裝新的 MSDE 2000 執行個體，除非您使用 SAPWD 參數來指定嚴密 sa 密碼。依預設，MSDE 2000 SP3a 安裝程式不會升級現有的 MSDE 2000 執行個體，除非您已指派嚴密密碼給 sa 登入。除非使用 MSDE 執行個體的應用程式使用的是空白的 sa 密碼，否則在升級現有的執行個體時，您還是應該為 sa 登入指定嚴密密碼。即使 MSDE 2000 執行個體正在執行「Windows 的帳戶驗證模式」，若執行個體切換到「混合模式」，還是會立即啟用 sa 登入。可使用 null、空白的、簡單的或眾所皆知的 sa 密碼來進行未授權的存取。若您需要在升級 MSDE 2000 執行個體到 SP3a 之前指派一組 sa 嚴密密碼，請參閱 Microsoft Knowledge Base 文章 322336。

為取得更佳的安全性，請盡可能搭配使用「Windows 的帳戶驗證」及 MSDE 2000 安裝。若有以下狀況，請考慮從「混合模式」切換至「Windows 的帳戶驗證模式」：

- 使用 MSDE 2000 的應用程式可以使用「Windows 的帳戶驗證」來執行。
- 您已為所有需要連線到該執行個體的使用者定義「Windows 的帳戶驗證」登入。若需新增登入的相關資訊，請參閱《SQL Server 2000線上叢書》中的〈新增 Windows 使用者或群組〉。
- MSDE 2000 的執行個體不是在 Windows 98 或 Windows ME 上執行。

若需將 MSDE 2000 的執行個體從「混合模式」變更為「Windows 的帳戶驗證模式」的相關資訊，請參閱 Microsoft Knowledge Base 文章 322336。

### 3.7.3 MSDE 2000 安裝程式參數

下列資訊僅適用於 Desktop Engine (MSDE 2000)。

MSDE 2000 是設計用來隨著應用程式散發，並透過應用程式中的安裝程式來安裝的。MSDE 2000 沒有互動式的安裝程式。MSDE 2000 的安裝程式機制是設計用來讓應用程式中安裝程式之公用程式呼叫使用的，其中任何與使用者所互動的要求，將由應用程式的安裝程式處理。MSDE 2000 擁有兩種安裝機制：

- 命令提示字元「安裝程式」公用程式。安裝程式公用程式通常是由應用程式中安裝程式之公用程式所呼叫，但是它也可以從命令提示字元視窗中執行。MSDE 2000 的安裝程式公用程式沒有圖形使用者介面，來讓使用者控制此公用程式的運作方式。反之，此公用程式接受一組定義該公用程式應採取何種動作的參數。
- 一組 Windows Installer 合併模組。撰寫 Windows Installer 型之安裝程式公用程式的開發人員，可以編碼其應用程式之安裝程式來安裝執行個體 MSDE 2000，方法是使用 MSDE 2000 的合併模組。開發人員可以控制安裝之執行個體的組態，方法是指定對應到 MSDE 2000 安裝程式公用程式參數的安裝封裝內容。

使用者可以使用命令提示字元 MSDE 2000 安裝程式公用程式，升級現有 MSDE 的執行個體或安裝新的 MSDE 2000 執行個體。使用者透過指定參數來控制 MSDE 2000 安裝程式的運作方式。安裝程式參數可用下列二種方式之一來指定：

- 在命令列上。
- 由「安裝程式」公用程式讀取的 .ini 檔案。

大多數由 MSDE 2000 SP3a 版本支援的「安裝程式」參數，都記載在《SQL Server 2000 線上叢書》(最新版 – SP3) 中的〈自訂 Desktop Engine Setup.exe〉。若需安裝《SQL Server 2000 線上叢書》的相關資訊，請參閱 1.6 節〈更新的線上叢書文件集已發行〉。

如果指定的值擁有特殊字元 (如空格)，則「MSDE 安裝程式」參數的值必須加上雙引號。否則引號可以省略。

這些「MSDE 2000 SP3a 安裝程式」的參數若沒有記載在《SQL Server 2000 線上叢書》(最新版 – SP3) 中，則會跟書中所描述的運作方式不一樣。

參數名稱 | 描述
--- | ---
ALLOWXDBCHAINING=1 | 啟用跨資料庫擁有權鏈結。相關資訊，請參閱 5.1.11 節〈跨資料庫擁有權鏈結〉。
SAPWD=sa_password | 當安裝新的 MSDE 2000 執行個體時，指定將要指派給 sa 登入的密碼。當您升級現有的 MSDE 2000 執行個體時會忽略 SAPWD，因此您應該確定在升級前，sa 登入已具有嚴密密碼。您應該隨時指定 sa 的嚴密密碼，即使是使用「Windows 的帳戶驗證模式」。當執行 Setup.exe 時，如果 SAPWD 的內容沒有寫入安裝記錄檔內，則可能您是使用合併模組來安裝。
/upgradesp { SQLRUN | [<MSIPath>]SqlRunXX.msi

}

指定安裝程式會將現有的 MSDE 2000 執行個體升級至 SP3a。在 SP3 及以上版本中，此參數會取代「安裝程式」較早版本中支援的 /p 參數。請勿在 SP3 或以上版本中使用 /p 參數。當升級至 SP3a 時，不會再要求您指定用於安裝現有 MSDE 2000 執行個體的.msi 檔案。

大多數的使用者僅指定 SQLRUN，在這個例子中，「MSDE 2000 SP3a 安裝程式」公用程式決定要使用哪個.msi 檔案。當您指定 SQLRUN，而非指定 INSTANCENAME 時，安裝程式會升級預設之 MSDE 2000 的執行個體。如果您指定 SQLRUN 和 INSTANCENAME 二者，則安裝程式會使用 INSTANCENAME 參數來升級執行個體。

當您指定 MSDE 2000 .msi 安裝封裝檔案的名稱時，不論電腦的執行個體一開始是否以相同名稱的合併模組來安裝，安裝程式都會升級。例如，如果您指定 SqlRun01.msi，不論 MSDE 2000 的執行個體原本是否以 SqlRun01.msi安裝過，安裝程式都會升級。MSIPath 是通往包含 .msi 檔案之資料夾的路徑。MSIPath 預設是 Setup\。

若需指定 /upgradesp 的相關範例，請參閱 3.7.4 小節〈升級現有 MSDE 2000 的執行個體到 SP3a〉。

UPGRADEUSER=AnAdminLogin | 指定當您使用「SQL Server 的帳戶驗證」升級 MSDE 1.0 或 MSDE 2000 其一的執行個體時，所要使用的登入名稱。登入必須是 sysadmin 固定伺服器角色的成員。只有在升級 MSDE 的執行個體，指定 SECURITYMODE=SQL 時，才會使用此參數。
UPGRADEPWD= AdminPassword | 指定當您使用「SQL Server 的帳戶驗證」升級 Desktop Engine 時，在 UPGRADEUSER 中登入的密碼。

Desktop Engine SP3 引進新的 DISABLENETWORKPROTOCOLS 參數。依預設，在 Desktop Engine SP3a 中 DISABLENETWORKPROTOCOLS 的運作方式會變得更為安全。

下面為在 SP3a 中，DISABLENETWORKPROTOCOLS 的運作方式。

DISABLENETWORKPROTOCOLS 值 | 升級現有的執行個體 | 安裝新的執行個體
1 | 執行個體透過所有已停用之伺服器網路程式庫設定。 | 執行個體透過所有已停用之伺服器網路程式庫設定。
0 | 保留現有的伺服器網路程式庫組態。 | 執行個體透過預設之伺服器網路程式庫及啟用的位址來設定。
未指定參數，或任何不是 0 或 1 的值 | 保留現有的伺服器網路程式庫組態。 | 執行個體透過所有已停用之伺服器網路程式庫設定。

在 SP3 中，相較於 SP3a，DISABLENETWORKPROTOCOLS 有兩種不同的運作方式：

- 當使用 SP3 安裝新的執行個體，且如果未指定 DISABLENETWORKPROTOCOLS，或是將其設為非 0 或 1 的值時，則執行個體會透過預設的網路程式庫及啟用的位址來安裝。在 SP3a 中，網路程式庫已經停用。
- 儘管 MSDE 2000 SP3 中執行個體所有的網路程式庫都是已停用的，其執行個體仍然會使用 UDP 連接埠 1434。在 SP3a 中，執行個體不會在其組態中使用 UDP 連接埠 1434。相關資訊，請參閱 5.1.15 節〈UDP 連接埠 1434 上的作業〉。

若需預設網路程式庫組態的相關資訊，請參閱《SQL Server 2000 線上叢書》中的〈控制網路程式庫及通訊位址〉。

如果您是將 MSDE 2000 合併模組 (.msi 檔案) 併入 Windows Installer 安裝程式的開發人員，您可以將上述安裝程式的參數指定為 .msi 檔案的內容。Desktop Engine (MSDE 2000) SP3a 提供合併模組以支援使用合併模組的現有應用程式。應寫入新應用程式的「安裝程式」公用程式以呼叫 MSDE 2000「安裝程式」公用程式，而不是直接使用 MSDE 2000 合併模組。

參數名稱 | 合併模組內容
--- | ---
ALLOWXDBCHAINING | SqlAllowXDBChaining
DISABLENETWORKPROTOCOLS | SqlDisableNetworkProtocols
SAPWD | SqlSaPwd
UPGRADEUSER | SqlUpgradeUser
UPGRADEPWD | SqlUpgradePwd

若需對應至其他「安裝程式」參數之合併模組內容的相關資訊，請參閱《SQL Server 2000 線上叢書》中的〈使用 SQL Server Desktop Engine 合併模組〉。

##### 要求安裝程式記錄檔

如果您在執行安裝程式時遇到困難，且需要詳細的記錄檔來協助您進行偵錯，請指定 /L*v <LogFileName>。<LogFileName> 是記錄檔的名稱，該記錄檔會記錄所有的動作。如果您沒有將路徑指定為名稱的一部份，則記錄檔將會建立在目前的資料夾。如果您是從 SQL Server 2000 SP3a 光碟中執行安裝程式，您必須指定到您磁碟資料夾的完整路徑。此範例將記錄檔 MSDELog.log 建立在 C: 磁碟機下的根資料夾：

setup /upgradesp sqlrun DISABLENETWORKPROTOCOLS=1 /L*v C:/MSDELog.log

### 3.7.4 升級現有 MSDE 2000 的執行個體到 SP3a

下列資訊僅適用於 Desktop Engine (MSDE 2000)。

本節中的範例會將現有 MSDE 2000 的執行個體升級至 SP3a，並且也會停用 MSDE 2000 執行個體的網路連接。如果執行個體必須接受從其他電腦上執行之應用程式的連線，請勿指定 DISABLENETWORKPROTOCOLS 參數。

本節的範例假設 sa 登入名稱已擁有嚴密密碼。若需 sa 登入名稱密碼的相關資訊，請參閱 3.7.2 節〈MSDE 2000 SP3a 的安全性注意事項〉。

升級 SQL Server 2000 Desktop Engine

1. 開啟命令提示字元視窗。
2. 在命令提示字元中，使用 cd 命令以瀏覽包含 MSDE 2000 SP3a 安裝程式公用程式所在的資料夾：

   cd c:\MSDESP3aFolder\MSDE

   其中，c:\MSDESP3aFolder 會是您解壓縮 MSDE 2000 SP3a 檔案至資料夾的路徑，或是在 SQL Server 2000 SP3a 光碟中的 Desktop Engine SP3a 資料夾。

3. 執行下列其中一項命令：
   - 若是使用「Windows 的帳戶驗證模式」的預設執行個體，請執行：

         setup /upgradesp sqlrun DISABLENETWORKPROTOCOLS=1

   - 若是使用「Windows 的帳戶驗證模式」的具名執行個體，請執行：

         setup /upgradesp sqlrun INSTANCENAME=InstanceName DISABLENETWORKPROTOCOLS=1

   - 若是使用「混合模式」的預設執行個體 (其中 AnAdminLogin 是 sysadmin 固定伺服器角色的成員之一)，請執行：

         setup /upgradesp sqlrun SECURITYMODE=SQL UPGRADEUSER=AnAdminLogin UPGRADEPWD=AdminPassword DISABLENETWORKPROTOCOLS=1

   - 若是使用「混合模式」的具名執行個體 (其中 AnAdminLogin 是 sysadmin 固定伺服器角色的成員之一)，請執行：

         setup /upgradesp sqlrun INSTANCENAME= InstanceName SECURITYMODE=SQL UPGRADEUSER=AnAdminLogin UPGRADEPWD=AdminPassword DISABLENETWORKPROTOCOLS=1

重要事項 如果您在安裝過程中使用 .ini 檔案，請避免將憑證存放在 .ini 檔案中。

附註 當您在執行 Windows 98 或 Windows Millennium Edition 的電腦上升級 Desktop Engine 時，所升級的 Desktop Engine 執行個體必須在啟動安裝程式之前停止。

### 3.7.5 安裝 MSDE 2000 SP3a 的新執行個體

下列資訊僅適用於 Desktop Engine (MSDE 2000)。

本節中的範例會安裝其網路連線設定為已停用之 MSDE 2000 SP3a 的新執行個體。如果執行個體必須接受從其他執行應用程式之電腦上的連線，也請指定 DISABLENETWORKPROTOCOLS=0。

這些範例的所有組態項目 (如定序及檔案位置) 都使用預設值來安裝執行個體。組態可以透過安裝程式的參數來控制，例如 COLLATION、DATADIR 及 TARGETDIR。若需能夠指定安裝程式組態參數的相關資訊，請參閱《SQL Server 2000 線上叢書》(最新版 – SP3) 中的〈自訂 Desktop Engine Setup.exe〉。若需安裝《SQL Server 2000 線上叢書》(最新版 – SP3) 的相關資訊，請參閱 1.6 節〈更新的線上叢書文件集已發行〉。

安裝新的 Desktop Engine 執行個體

1. 開啟命令提示字元視窗。
2. 在命令提示字元中，使用 cd 命令以瀏覽包含 MSDE 2000 SP3a 安裝程式公用程式所在的資料夾：

   cd c:\MSDESP3aFolder\MSDE

   其中，c:\MSDESP3aFolder 會是您解壓縮 MSDE 2000 SP3a 檔案至資料夾的路徑，或是在 SQL Server 2000 SP3a 光碟中的 Desktop Engine SP3a 資料夾。

3. 執行下列其中一項命令：
   - 若要安裝設定的預設執行個體來使用「Windows 的帳戶驗證模式」，請執行：

         setup SAPWD="AStrongSAPwd"

     其中，AStrongSAPwd 是將要指派給 sa 登入的嚴密密碼。

   - 若要安裝設定的具名執行個體來使用「Windows 的帳戶驗證模式」，請執行：

         setup INSTANCENAME="InstanceName" SAPWD="AStrongSAPwd"

     其中，AStrongSAPwd 是將要指派給 sa 登入的嚴密密碼，而 InstanceName 是要指派給執行個體的名稱。

   - 若要安裝設定的預設執行個體來使用「混合模式」，請執行：

         setup SAPWD="AStrongSAPwd" SECURITYMODE=SQL

     其中，AStrongSAPwd 是將要指派給 sa 登入的嚴密密碼。

   - 若要安裝設定的命名執行個體來使用「混合模式」，請執行：

         setup INSTANCENAME="InstanceName" SECURITYMODE=SQL SAPWD="AStrongSAPwd"

     其中，AStrongSAPwd 是將要指派給 sa 登入的嚴密密碼，而 InstanceName 是要指派給執行個體的名稱。

重要事項 如果您在安裝過程中使用 .ini 檔案，請避免將嚴密憑證存放在 .ini 檔案中。

重要事項 隨時指定 sa 登入的嚴密密碼，即使該執行個體被設定為使用「Windows 的帳戶驗證模式」。

### 3.7.6 將 MSDE 1.0 升級到 MSDE 2000 SP3a

下列資訊僅適用於 Desktop Engine (MSDE 2000)。

本節的範例會將現有 MSDE 1.0 的執行個體升級至 MSDE 2000 SP3a，並且也會停用該執行個體的網路連線。如果執行個體必須接受從其他執行應用程式之電腦的連線，則勿指定 DISABLENETWORKPROTOCOLS 參數。

MSDE 1.0 會以與 MSDE 2000 的預設執行個體相同的方式運作，且會隨時升級至 MSDE 2000 的預設執行個體。

從 Desktop Engine 1.0 版升級

1. 開啟命令提示字元視窗。
2. 在命令提示字元中，使用 cd 命令以瀏覽包含 MSDE 2000 SP3a 安裝程式公用程式所在的資料夾：

   cd c:\MSDESP3aFolder\MSDE

   其中，c:\MSDESP3aFolder 會是您解壓縮 MSDE 2000 SP3a 檔案至資料夾的路徑，或是在 SQL Server 2000 SP3a 光碟中的 Desktop Engine SP3a 資料夾。

3. 執行下列其中一項命令：
   - 當使用「Windows 的帳戶驗證模式」時，請執行：

         setup UPGRADE=1 DISABLENETWORKPROTOCOLS=1

   - 當使用「混合模式」時 (其中，AnAdminLogin 是 sysadmin 固定伺服器角色的成員之一)，請執行：

         setup UPGRADE=1 SECURITYMODE=SQL UPGRADEUSER=AnAdminLogin UPGRADEPWD=AdminPassword DISABLENETWORKPROTOCOLS=1

附註 如果您使用 BLANKSAPWD=1，則不需要指定 SECURITYMODE=SQL 或 UPGRADEUSER 和 UPGRADEPWD。

注意 非常不建議您使用空白密碼。

重要事項 如果您在安裝過程中使用 .ini 檔案，請避免將憑證存放在 .ini 檔案中。

### 3.7.7 重新散發 MSDE 2000 SP3a

下列資訊僅適用於 Desktop Engine (MSDE 2000)。

Desktop Engine SP3a 包含隨應用程式重新散發 MSDE 2000 所需的所有檔案 (前提是應用程式廠商需有權散發 MSDE 2000)。您可以散發《SQL Server 2000 線上叢書》(最新版 SP3) 所述的 Desktop Engine SP3a 檔案，包含這些章節所涵蓋的 SP3a 特定變更：

- 3.7.2 MSDE 2000 SP3a 的安全性注意事項
- 3.7.3 MSDE 2000 安裝程式參數

若需安裝《SQL Server 2000 線上叢書》(最新版 - SP3) 的相關資訊，請參閱 1.6 節〈更新的線上叢書文件集已發行〉。

##### 散發 Desktop Engine SP3a 修補程式

如果應用程式擁有 Windows Installer 型的安裝程式公用程式，則可以安裝 MSDE 2000 執行個體，方法是使用 MSDE 2000 合併模組。Desktop Engine (MSDE 2000) SP3a 提供合併模組以支援使用合併模組的現有應用程式。應寫入新應用程式的「安裝程式」公用程式以呼叫 MSDE 2000「安裝程式」公用程式，而不是直接使用 MSDE 2000 合併模組。

選擇使用 MSDE 2000 合併模組來安裝 MSDE 2000 執行個體的廠商，也必須提供所有後續的 MSDE 2000 修補程式給他們的使用者。使用合併模組安裝的 MSDE 2000 執行個體會以產品代碼 GUID 標示，與 Windows Installer 的應用程式相關。只有也包含應用程式產品代碼 GUID 的修補檔案才能夠修補那些 MSDE 2000 的執行個體。只有應用程式廠商所產生的修補檔案才會包含合適的產品代碼。由 Microsoft 所提供的Desktop Engine (MSDE 2000) Service Pack 無法套用至這些執行個體上。應用程式廠商必須使用 Desktop Engine SP3a 檔案來建立修補檔案，並將這些修補檔案散發給需要 SP3a 修正檔的所有 MSDE 客戶。

若需建立修補封裝的相關資訊，請參閱包含在 Windows Installer Software Development Kit (SDK) 中的文件，可從 Microsoft Platform SDK Web Site 下載該文件。

如果應用程式之安裝程式公用程式透過呼叫 MSDE 2000 安裝程式公用程式來安裝 MSDE 2000 執行個體，則此 MSDE 2000 的執行個體會以 MSDE 2000 產品代碼 GUID 來標示。客戶可以透過使用標準 Microsoft MSDE 2000 Service Pack 檔案來修補這些執行個體。應用程式廠商可以選擇下列其中一種散發 MSDE 2000 SP3a 的替代方式：

- 指導他們的客戶從 SQL Server 2000 SP3a 下載頁面，或是從 SQL Server 2000 SP3a 光碟來安裝 Desktop Engine SP3a。
- 下載 CHT_SQL2KDeskSP3.exe 檔案，並遵循如何套用 Service Pack 的指示，將檔案散發給客戶。
- 使用 Desktop Engine SP3a 檔案，建立 Service Pack 應用程式公用程式，該公用程式會在應用程式安裝的 MSDE 2000 執行個體上安裝 SP3a。

選擇指導客戶直接套用 SP3a 的應用程式廠商應該發展出一套針對客戶需求的指示說明。

若需 Microsoft 應用程式團隊為其客戶準備之 MSDE 2000 Service Pack 指示的類型範例，請參閱 Microsoft MSDE Applications Web page。

### 3.7.8 MSDE 2000 SP3a 檔案

下列資訊僅適用於 Desktop Engine (MSDE 2000)。

所有 Desktop Engine SP3a 的安裝檔案及資料夾都位於 \MSDE 資料夾中：

- 位於 SQL Server 2000 SP3a 光碟
- 包含從 CHT_SQL2KDeskSP3.exe 解壓縮之 Service Pack 檔案的目錄中。

\MSDE 資料夾包含 SP3readme.htm 檔、readme.txt 檔、license.txt 檔，以及「安裝程式」公用程式的可執行檔。它也具有下列子資料夾：

- \Msi:包含安裝 Windows Installer，或是升級 Windows Installer (如果它的版本比 2.0.2600.0 更早) 時所需要的可執行檔。
- \MSM:包含合併模組安裝程式所需要的合併模組。
- \Setup:包含 MSDE 2000 安裝程式安裝新的 MSDE 2000 SP3a 執行個體時所需的 .msi 安裝封裝檔案，或用來升級現有 MSDE 2000 的執行個體至 SP3a 所需的 msp 修補封裝檔案，以及包含由「安裝程式」安裝之檔案的 sqlrun.cab 封包檔。

若需使用 Desktop Engine 合併模組的描述，請參閱《SQL Server 線上叢書》的〈使用 SQL Server Desktop Engine 合併模組〉。

如果您的應用程式安裝程式呼叫 MSDE 2000「安裝程式」，並以此結構建立資料夾及檔案組 (其中， MSDEInstallFolder 代表範例資料夾名稱)：

MSDEInstallFolder

從 Desktop Engine SP3a \MSDE 資料夾中複製這些檔案：Setup.exe、Setup.ini、Setup.rll 及 sqlresld.dll。

MSDEInstallFolder\Msi

從 Desktop Engine SP3a \MSDE\Msi 資料夾中複製所有的檔案。

MSDEInstallFolder\Setup

從 Desktop Engine SP3a \MSDE\Setup 資料夾中複製所有的檔案。

然後您可以執行 Setup.exe 來安裝或升級 MSDE 2000 SP3a 的執行個體。

如果 Windows Installer 尚未安裝到電腦上，或是其版本比「MSDE 2000 SP3a 安裝程式」測試之版本更早，則「安裝程式」會使用 MSDEInstallFolder\Msi 資料夾中的檔案來升級 Windows Installer。

## 3.8 重新啟動服務

下列資訊適用於所有元件。

當安裝程式完成時，它也許會提示您重新啟動系統。系統重新啟動 (或安裝程式完成而沒有要求重新啟動) 之後，請使用 [控制台] 中的 [服務] 應用程式以確定在套用 Service Pack 之前，您所停止的任何服務正在執行中。這包括 MS DTC 及 Microsoft Search、MSSQLServer、MSSQLServerOLAPService 及 SQLServerAgent 服務等，或是同等的特定執行個體。

在此時，備份所升級之 master 及 msdb 資料庫也是比較謹慎的作法。

## 3.9 重新啟動應用程式

下列資訊適用於所有元件。

重新啟動您在執行 Service Pack 安裝程式之前關閉的應用程式。

## 3.10 在容錯移轉叢集上安裝

下列只適用於屬容錯移轉叢集之一部份的 SQL Server 2000 元件。

在容錯移轉叢集上安裝此 Service Pack

1. 如果有任何資源是以 SQL Server 資源的依存性新增，則這些依存性必須在安裝 SP3a 之前移除或離線。如果沒有執行此項操作，則 SP3a 的安裝可能會導致這些依存性資訊容錯移轉。
2. 從擁有群組 (包含您將升級的虛擬伺服器) 的節點執行此 Service Pack。這樣可將 Service Pack 檔案安裝在容錯移轉叢集的所有節點上。
3. 在 [安裝] 對話方塊中，鍵入將升級之虛擬伺服器的名稱。
4. 安裝期間，請將叢集上的所有節點都保持在線上的狀態。這樣可確保升級將會套用到叢集的每一個節點。
5. 如果您在上述的步驟 1 將依存性移除或使資源離線，請重新新增依存性或將資源設為連線的狀態。

附註 安裝程式可能需要重新啟動容錯移轉叢集節點。此項動作會將已更新的檔案取代在安裝過程中使用的檔案。

如果您正將預設 (非叢集) SQL Server 的執行個體升級至虛擬伺服器，則必須先將預設 (非叢集) 執行個體升級為虛擬執行個體，然後再套用 SP3a。若需升級的相關資訊，請參閱《SQL Server 線上叢書》的〈如何從預設執行個體升級至 SQL Server (Setup) 的預設叢集執行個體〉。

若需在容錯移轉叢集上安裝 SP3a 的其他資訊，請參閱 Knowledge Base 文章 811168。

如果您需要在容錯移轉叢集中重新建置節點，請執行下列步驟

1. 在容錯移轉叢集中重新建置節點。若需重新建置節點的相關資訊，請參閱《SQL Server 線上叢書》的〈如何從狀況 1 的容錯移轉叢集失敗中還原〉。
2. 執行原始 SQL Server 2000 安裝程式以將節點新增回容錯移轉叢集。
3. 在新加入的節點上執行「SP3a 安裝程式」。這只會將新節點上的二進位編碼更新到 SP3a。

附註 如果您從執行虛擬伺服器上的節點來執行「安裝程式」，則必須將 SP3a 重新套用到所有的節點上。您也必須重新執行資料庫升級指令碼。

當在叢集上安裝 Analysis Services SP3a 時，則必須個別升級每個執行個體。

在 Analysis Services 叢集上安裝 SP3a

1. 在容錯移轉節點上安裝 SP3a。
2. 容錯移轉至新升級的節點。
3. 在叢集中的所有執行個體都完成升級之前，重複步驟 1 到步驟 2。

## 3.11 在複寫的伺服器上安裝

下列資訊僅適用於屬複寫拓樸一部份之 SQL Server 2000 元件：

- 您必須在升級「發行者」之前升級「散發者」。
- 對於以使用唯讀「訂閱者」的交易式複寫為基礎的複寫拓樸而言，您可以在升級「發行者」和「散發者」之前或之後「訂閱者」。
- 對於以使用更新「訂閱者」的合併式複寫或交易式複寫為基礎的複寫拓樸而言，您必須在升級「發行者」和「散發者」之後升級「訂閱者」。

附註 在大多數的情況下，尤其是合併式複寫，「散發者」及「發行者」是在同一部伺服器上，且會同時升級。

##### 在擔任發行者和訂閱者的伺服器上安裝 SP3a

對於以使用包含有一個或多個擔任「訂閱者」和「發行者」(或「散發者」) 的伺服器之更新「訂閱者」的合併式複寫或交易式複寫為基礎的複寫拓樸而言，您可能需要靜止系統 (換句話說，停止所有更新) 並同時升級所有的伺服器。

###### 範例 1：需要同步升級的拓樸

下表包括同時發行和訂閱發行集 (可在「訂閱者」進行更新) 的伺服器。如前文所示，對於可在「訂閱者」進行更新的拓樸而言，您必須遵守下列升級順序：散發者、發行者、訂閱者。此順序會要求你為合併式發行集先升級伺服器 A，為使用更新「訂閱者」的交易式發行集先發行伺服器 B。在此情況下，您必須靜止系統並同時升級伺服器。

伺服器 A | 伺服器 B
--- | ---
合併式複寫的發行者/散發者 | 合併式複寫的訂閱者
含更新之交易式複寫的訂閱者 | 含更新之交易式複寫的發行者/散發者

###### 範例 2：允許循序升級的拓樸

在此例中，您可以先升級伺服器 A，因為唯讀交易式發行集允許在「發行者」/「散發者」之前升級「訂閱者」。

伺服器 A | 伺服器 B
--- | ---
合併式複寫的發行者/散發者 | 合併式複寫的訂閱者
唯讀交易式複寫的訂閱者 | 唯讀交易式複寫的發行者/散發者

##### 其他複寫安裝問題

重要事項 在您升級至 SP3a 之前，請確認在 SQL Server 服務之下所執行的 Windows 帳戶是 sysadmin 固定伺服器角色的成員。您必須進行這項動作，因為複寫散發資料庫乃是在 SQL Server 服務帳戶的內容下升級的。在升級至 SP3a 之後，您應該將 Windows 帳戶從 sysadmin 角色中移除。

如果您正在使用的合併式複寫和「散發者」位於另一部電腦或資料庫執行個體 (遠端散發者) 上，則在套用 SP3a 之後，您必須建立新的快照集。

SP3a 會引進附加或還原複寫資料庫之需求的變更。相關資訊，請參閱 5.3.17〈變更附加或還原複寫資料庫的需求〉。

「SP3a 安裝程式」會升級身為複寫拓樸成員的使用者資料庫。若任何身為複寫拓樸成員的資料庫為無法寫入的狀態，則要將 SP3a 套用至這些資料庫時，您必須將它們設為可寫入的狀態並重新套用「SP3a 安裝程式」。若需將資料庫設為可寫入狀態的相關資訊，請參閱 3.12 節〈將 SP3a 套用至唯讀資料庫或檔案群組〉。若需重新套用 SP3a 的相關資訊，請參閱 3.14 節〈重新套用 SP3a〉。

負責複寫的現有備份配置可讓您在 SP3a 升級失敗之後，將資料庫還原至已知的點。在套用 SP3a 之後，建議您為任何包含在複寫拓樸中的使用者資料庫進行記錄檔或完整資料庫備份。如此一來，當複寫資料庫失敗時，就不需要在資料庫還原之後重新套用 SP3a。

## 3.12 將 SP3a 套用至唯讀資料庫或檔案群組

下列資訊僅適用於屬於複寫拓樸一部份之 SQL Server 2000 元件。

當無法寫入的資料庫或檔案群組存在時，安裝程式將顯示下列訊息：

    安裝程式偵測到系統中有一或多個無法寫入的資料庫或檔案群組。

一般而言，您可略過此警告而繼續安裝。然而，如果有任何列於安裝記錄中的無法寫入資料庫為複寫拓樸的成員時，則您必須將這些資料庫設為可寫入的狀態，並將「SP3a 安裝程式」重新套用至 SQL Server 2000 的執行個體。

附註 此訊息不會影響自動安裝。若需自動安裝的相關資訊，請參閱 4.1 節〈自動安裝〉。

附註 在安裝期間，「安裝程式」將無法區分無法寫入的資料庫和離線或可疑的資料庫。在安裝期間，若資料庫或檔案群組發生其中任何情況，就必須重新套用 Service Pack。若需讓資料庫上線的相關資訊，請參閱《SQL Server 線上叢書》中的〈附加及卸離資料庫〉主題。若需診斷可疑資料庫的相關資訊，請參閱《SQL Server 線上叢書》中的〈伺服器及資料庫疑難排解〉主題。

將 SP3a 套用至唯讀資料庫

1. 使用 ALTER DATABASE 陳述式將唯讀檔案群組設為可寫入的狀態，如下所示：

       ALTER DATABASE database SET READ_WRITE

2. 為所有唯讀資料庫重複步驟 1。
3. 套用 (或重新套用) Service Pack。
4. 視情況需要，可使用 ALTER DATABASE 將資料庫再次設為唯讀的狀態，如下所示：

       ALTER DATABASE database SET READ_ONLY

將 SP3a 套用至唯讀資料庫

1. 使用 ALTER DATABASE 將唯讀檔案群組設為可寫入的狀態，如下所示：

       ALTER DATABASE Database
       MODIFY FILEGROUP filegroup_name READWRITE

2. 為所有唯讀檔案群組重複步驟 1。
3. 套用 (或重新套用) Service Pack。
4. 使用 ALTER DATABASE 將檔案群組再次設為唯讀的狀態，如下所示：

       ALTER DATABASE Database
       MODIFY FILEGROUP filegroup_name READONLY

若需 ALTER DATABASE 的相關資訊，請參閱《SQL Server 線上叢書》的〈ALTER DATABASE〉參考主題。若需重新套用 SP3a 的相關資訊，請參閱 3.14 節〈重新套用 SP3a〉。

## 3.13 解除安裝 SP3a

移除 SQL Server SP3a 的方式需視要移除的 SQL Server 2000 SP3 元件而定。

附註 MDAC 更新無法解除安裝。相關資訊，請參閱 5.5.1 節〈Microsoft Data Access Components 的更新〉。

#### 解除安裝 SQL Server 元件和 Desktop Engine SP3a

若要還原 SQL Server 2000 元件的前 SP3a 版本，您必須在安裝 SP3a 之前進行 master、msdb 和 model 資料庫的備份。相關資訊，請參閱 3.1 節〈備份 SQL Server 資料庫〉。

附註 如果複寫包含任何資料庫，則您必須停用發行。若要停用發行：

1. 在 SQL Server Enterprise Manager 中，展開 SQL Server 群組，展開伺服器，在 [複寫] 資料夾上按一下滑鼠右鍵，再按 [設定發行、訂閱者及散發]。
2. 選取 [發行集資料庫] 頁籤。
3. 清除每一個與複寫有關的資料庫之核取方塊。這可讓您卸離資料庫。

還原至 SQL Server 的前 SP3a 版本

1. 卸離所有使用者資料庫。相關資訊，請參閱《SQL Server 線上叢書》的〈如何附加及卸離資料庫 (Enterprise Manager)〉。
2. 解除安裝 SQL Server。在 [控制台] 中連按兩下 [新增/移除程式]，再選取您要解除安裝的 SQL Server 執行個體。
3. 從光碟或您當初安裝 SQL Server 的位置安裝 SQL Server 2000。
4. 套用任何在 SP3a 之前安裝的 Service Pack 和 QFE 修正檔。
5. 從套用 SP3a 之前所建立的最後一個備份來還原資料庫 master、msdb及 model。這會自動附加任何在備份建立的時候所附加的使用者資料庫，並假設資料檔案的位置並未變更。
6. 附加任何在 master 資料庫最後一次備份後所建立的使用者資料庫。
7. 視需要設定複寫。

   警告 當還原至 SQL Server 的前 SP3a 版本時，所有自套用 SP3a 以來對資料庫 master、msdb 和 model 所做的變更將會遺失。

#### 解除安裝 SQL Server 2000 Analysis Services SP3a

若希望將 Analysis Services 返回其之前 SP3a 的狀態，您必須在安裝 SP3a 之前備份 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLAP Server 登錄機碼。相關資訊，請參閱 3.2 節〈備份 SQL Server 資料庫和儲存機制〉。

附註 如果您沒有備份此登錄機碼，則必須遵循 Microsoft Knowledge Base 文章 330244 中所描述的程序。

還原至 SQL Server 的前 SP3a 版本

1. 解除安裝 SQL Server 2000 Analysis Services。在 [控制台] 中按兩下 [新增/移除程式]，按一下 [SQL Server 2000 Analysis Services]，再按 [移除]。
2. 從光碟或您當初安裝 SQL Server 的位置重新安裝 SQL Server 2000 Analysis Services。
3. 套用任何在 SP3a 之前安裝的 Service Pack 和 QFE 修正檔。
4. 移除 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLAP Server 登錄機碼。
5. 自前 SP3a 備份重新安裝 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLAP Server 登錄機碼。

## 3.14 重新套用 SP3a

下列資訊適用於所有元件。

在下列情況下，您必須重新套用 SP3a：

- 如果在套用 SP3a 之後，新增新的 SQL Server 2000 元件。
- 在初始套用 SP3a 的過程中，如果資料庫或檔案群組屬於複寫拓樸的一部份且為唯讀，則會將它們設為可寫入的狀態。

若要重新套用 SP3a，請遵循 3.0 節〈安裝 Service Pack〉中的步驟。

# 4.0 其他安裝注意事項

本章節說明僅適用於特殊狀況中的其他 Service Pack 安裝注意事項。

## 4.1 自動安裝

Database Components SP3a 可在自動模式下套用至 SQL Server 的執行個體。Database Components SP3a 光碟包含可用於執行 SP3a 自動安裝和其他類型安裝的 .iss 檔案。下列檔案位於光碟的根目錄下：

- Sql2kdef.iss 是自動安裝檔案，作用是將 Database Components SP3a 套用到在 Windows 2000 或 Windows NT 4.0 上執行的 SQL Server 2000 的預設執行個體中。可使用的對應批次檔為 Sql2kdef.bat。
- Sql2knm.iss 是安裝檔案，用以將 Database Components SP3a 套用到在 Windows 2000 或 Windows NT 4.0 上執行的 SQL Server 2000 具名執行個體。您必須變更 .iss 檔中的執行個體名稱，才能識別將升級的執行個體。
- Sql2ktls.iss 是用來將 Database Components SP3a 套用到純工具安裝的安裝檔案。這個檔案不需任何修改即可用來進行安裝。
- Sql2k9x.iss 是用來在執行 Windows Millennium Edition 或 Windows 98 的電腦上套用 Database Components SP3a 的安裝檔案。您必須變更此 .iss 檔案中的執行個體名稱，才能識別將升級的執行個體。
- Sql2kcli.iss 是安裝檔案，用來將 Database Components SP3a 套用到執行 Windows 95之電腦上的用戶端元件安裝。
- `Msolap.iss` 是安裝檔案，用來儲存 `Analysis Services SP3a` 自動安裝所需的參數清單。

若需執行 SQL Server 2000 自動安裝的相關資訊，請參閱《SQL Server 線上叢書》中的〈執行自動安裝〉主題。

##### 自動安裝注意事項

下列注意事項與自動安裝有關：

- 盡可能使用「Windows 的帳戶驗證」來執行自動安裝。
- 如果您必須使用「SQL Server 的帳戶驗證」的自動安裝；例如，如果您正在執行 Windows 98 或 Windows Millennium Edition 的電腦上執行 SP3a 的自動安裝，則您不應該在 .iss 檔案或批次檔中包含 sa 的登入密碼，因為這些檔案尚未經過加密。相反地，您應該在命令列中使用 sapwd 參數提供 sa 登入密碼，如下所示：

      start /wait setupsql.exe -s -sms -f1 C:\sql2knm.iss -sapwd password

- 如果要升級至 SP3a 的 SQL Server 執行個體有一個空白密碼的 sa 登入帳戶，則在執行自動安裝之前必須先提供密碼。您應該執行 sp_password 來變更此密碼。
- 當執行 SP3a 自動安裝時，您必須手動設定下列與 [回溯相容性檢查清單] 對話方塊相對應的安裝參數，否則該自動安裝將失敗。

自動安裝參數 | 描述
--- | ---
UpgradeMSSearch | 此參數在描述全文檢索目錄的必要重建時為必要選項。如果已啟用「全文檢索搜尋」，則您必須將此參數設為 1。相關資訊，請參閱 5.1.5 節〈全文檢索目錄在安裝完成之後重新建置〉。
MSXTSXUpgraded | 此參數在描述與升級主要/目標伺服器組態相關的問題時是必要選項。如果您是要將 SP3a 套用至主要或目標伺服器，則您必須將此參數設為 1。相關資訊，請參閱 5.4.2 節〈主要/目標伺服器組態的變更〉。
EnableCrossDBChaining | (選擇性) 此參數作用為啟用跨資料庫擁有權鏈結。若要啟用跨資料庫擁有權鏈結，請將此參數設為 1。相關資訊，請參閱 5.1.11 小節〈跨資料庫擁有權鏈結〉。

- 在自動安裝過程中，如果安裝程式偵測到有任何無法寫入的資料庫或檔案群組，則該資訊會寫入安裝記錄且繼續自動安裝。如果任一個列在安裝記錄中無法寫入的資料庫為複寫拓樸的成員，則您必須將這些資料庫設為可寫入的狀態，並將「SP3a 安裝程式」重新套用至 SQL Server 2000 的執行個體。若需將資料庫設為可寫入狀態的相關資訊，請參閱 3.12 節〈將 SP3a 套用至唯讀資料庫或檔案群組〉。若需重新套用 SP3a 的相關資訊，請參閱 3.14 節〈重新套用 SP3a〉。

## 4.2 重新散發 SP3a 資料存取元件

Database Components SP3a 包含自解壓縮檔案 Sqlredis.exe。當 Sqlredis.exe 執行時，它會：

1. 從 Microsoft Data Access Components (MDAC) 2.7 Service Pack 1a 執行 Mdac_typ.exe 檔。這會安裝 MDAC 2.7 SP1a 核心元件 (如果未偵測到相同或較新版本的話) 及包含在 SP3a 中的 SQL Server 和 Desktop Engine 用戶端連接元件版本。相關資訊，請參閱 5.5.1 節〈Microsoft Data Access Components 的更新〉。
2. 安裝 Microsoft Jet ODBC 驅動程式及連接元件。

您可以根據隨附於 SP3a 的 Redist.txt 檔中所提到的規定及條款，來重新散發 Sqlredis.exe 檔。

# 5.0 文件注意事項

本節涵蓋除了在執行 SP3a 時可用的新功能以外可能發生的問題。此些問題適用於從 SQL Server 2000、SQL Server 2000 SP1 或 SQL Server 2000 SP2 執行 Service Pack 進行升級的情況。本節並不打算說明 SP3a 中所提供的所有修正檔。若需這些修正檔的完整清單，請參閱 Microsoft Knowledge Base 文章 306908。

本節中的 Analysis Services 及 Meta Data Services 部份並不適用於純 Desktop Engine 安裝。

任何與 SQL Server 2000 Service Pack 3a 相關，但未能即時涵蓋於此讀我檔案中的資訊，將在 Microsoft Knowledge Base 文章 816502 中發行。

可在 Microsoft Product Support Services Knowledge Base 中取得這些 Microsoft Knowledge Base 的文章。

## 5.1 資料庫及 Desktop Engine 增強功能

下列增強功能適用於已安裝 Database Components SP3a 的 SQL Server 2000 執行個體。他們同樣適用於已安裝 Desktop Engine SP3a 的 MSDE 2000 執行個體。

### 5.1.1 將中文、日文或韓文字元與 Database Components SP3a 搭配使用

SP1 引進

如果您將 Database Components SP3a 安裝在執行 Windows NT 4.0 或 Windows 98 且稍後升級到 Windows 2000 的伺服器上，則 Windows 2000升級程序將更換某些系統檔。在排序中文、日文或韓文字元時需要這些系統檔。如果您在 SQL Server 資料庫中使用中文、日文或韓文字元，請在升級到 Windows 2000 後，重新執行 SP3a 所附的 Sqlredis.exe 版本。 若需如何執行 Sqlredis.exe 的相關資訊，請參閱 4.2 節〈重新散發 SP3a 資料存取元件〉。

附註 若是沒有中文、日文或韓文字元之資料庫的用戶端電腦或伺服器，則不需要重新套用 Sqlredis.exe。

### 5.1.2 移除雜湊組

SP1 引進

已移除雜湊組。因為 SQL Server 2000 的特定增強功能，使雜湊組不再具備其在 SQL Server 7.0 版中所擁有的效能優點。此外，移除雜湊組將使得 SQL Server 2000 更趨穩定。

因此，查詢最佳化程式不會再使用雜湊組產生查詢計劃。

在極少數的情況下，移除雜湊組可能會導致查詢處理的速度更慢。分析此類查詢來確定建立更適合的索引是否可以讓查詢效能恢復原先的水準。

### 5.1.3 新增 Affinity Mask 參數

SP1 引進

已將兩個 affinity mask 參數新增到此 Service Pack。

##### Affinity Mask I/O 參數

利用此 Service Pack，您可以指定哪些 CPU 是用來執行磁碟 I/O 作業的執行緒。此參數必須和 affinity mask 選項搭配使用。相關資訊，請參閱 Microsoft Product Support Services Knowledge Base 中的文章 298402。若需搜尋 Knowledge Base 的相關指示，請參閱 1.5 節〈其他關於 SP3a 的資訊〉。

##### Affinity Mask 連線參數

利用此 Service Pack，您可以設定已啟用 Virtual Interface Architecture (VIA) 的系統，將 SQL Server 連線從特定網路卡繫結至一個或一組處理器。此參數必須和 affinity mask 選項搭配使用。相關資訊，請參閱 299641 中的文章 Microsoft Product Support Services Knowledge Base。

### 5.1.4 篩選的索引檢視

SP2 引進

如果您發現 Microsoft Knowledge Base 文章 306467 中所提到的 SQL Server 錯誤 355069，則此 Service Pack 只能防止將來因資料的修改而發生的未預期的結果。除了套用此修正檔之外，所有以篩選條件檢視為基礎的索引都需要重新建立。相關資訊，請參閱 Microsoft Product Support Services Knowledge Base。

### 5.1.5 全文檢索目錄在安裝完成之後重新建置

SP3 引進

除非是從 SP3 升級，否則所有全文檢索目錄都必須重新建置為 SP3a 安裝的一部份。重新建置的動作是自動的，而且會耗用許多資源。全文檢索目錄的查詢在重新建置程序完成之前，可能只會傳回部份結果或無任何結果。安裝 SP3a 之後，系統事件日誌將包含說明全文檢索目錄已毀損、為舊版本，以及應重新建置的訊息。

相關資訊，請參閱 Knowledge Base 文章 327217，此文章中也討論到在重新建置過程中提供全文檢索搜尋功能以及防止自動重新建置的可能辦法。

### 5.1.6 sp_change_users_login 的語法變更

SP3 引進

現在當您以 @Action=Auto_Fix 引數執行 sp_change_users_login 時，您必須指定密碼。sp_change_users_login 會指派密碼給任何其為使用者建立的新登入。下列範例顯示新的 @Password 引數：

    sp_change_users_login [ @Action = ] 'action'
        [ , [ @UserNamePattern = ] 'user' ]
        [ , [ @LoginName = ] 'login' ]
        [ , [ @Password = ] 'password' ]

僅將 @Password引數與 @Action=Auto_Fix 搭配使用。下列範例顯示當使用 Auto_Fix 時，sp_change_users_login 命令的新語法。其他在《SQL Server 線上叢書》中的範例仍保持不變。

    USE pubs
    go
    EXEC sp_change_users_login 'Auto_Fix', 'Mary', NULL, 'B3r12-36'
    go

### 5.1.7 預設停用臨機操作存取 OLE DB Provider

SP3 引進

如果未明確設定 DisallowAdhocAccess 登錄選項，則依預設將不允許臨機操作存取 OLE DB Provider。這意謂著臨機操作查詢語法，例如 OPENDATASOURCE 及 OPENROWSET，在遠端伺服器上將無法發揮效用。若要允許臨機操作存取，您必須將 DisallowAdhocAccess 選項明確地設為 0。

### 5.1.8 新的 SqlServerLike 提供者選項

SP3 引進

為了讓包含 LIKE 述詞的遠端查詢處理起來更有效率，SP3 中已新增 SqlServerLike 選項。SQL Server 2000 SP3 或以上版本，在傳送 LIKE 作業至已連接的伺服器時有兩種選擇。如果已連結伺服器的 OLE DB Provider 支援 LIKE 作業及萬用字元的 SQL Server 語法，您可以指定 SqlServerLIKE 選項，來讓 SQL Server 使用 SQL Server 語法傳送 LIKE 作業。如果已連結伺服器的 OLE DB Provider 報告它支援 Entry Level ANSI/ISO SQL-92 語法或傳回 SQLPROP_ANSILIKE 屬性，則 SQL Server 將會使用 SQL-92 語法傳送 LIKE 作業至已連結的伺服器。若需 SQLPROP_ANSILIKE 的相關資訊，請參閱《SQL Server 2000 線上叢書》中的〈設計 SQLPROPSET_OPTHINTS 屬性集程式〉。

您必須加入登錄機碼值以啟用 OLE DB Provider 的 SqlServerLIKE 選項。

警告 不正確的編輯登錄機碼可能會導致很嚴重的問題，而使得您可能需要重新安裝作業系統。Microsoft 無法保證能夠解決因不正確編輯登錄所導致的問題。在編輯登錄之前，請先備份任何有用的資料。

1. 開啟 Regedit32。
2. 找出合適的登錄機碼：
   - 具名的執行個體，請找出此機碼：

     HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\<Instance Name>\Providers\<Provider Name>

   - 預設的執行個體，請找出此機碼：

     HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Providers\<Provider Name>

3. 在 <Provider Name> 機碼中，新增名為 SqlServerLIKE 的 DWORD 值，並將其值設為 1。

### 5.1.9 分散式查詢的擴充錯誤訊息

SP3 引進

若為分散式查詢，則除了伺服器錯誤資訊外，SQL Server 還會傳回提供者錯誤資訊。當相連結的伺服器之間的查詢導致錯誤時，SQL Server 會檢查提供者是否支援 IErrorRecords OLE DB 介面。如果支援這個介面，則 SQL Server 會呼叫 GetErrorInfo 函數以從提供者取得其他錯誤資訊，並將這個資訊當作錯誤訊息的一部份傳回給使用者。如果不支援 IErrorRecords 介面，則SQL Server 的運作方式將不會有所改變：SQL Server 傳回一般錯誤。

例如，對使用 MSDASQL 但不支援 sql_variant 的伺服器執行下列查詢：

    SELECT * FROM remote2k.dqtable.dbo.sqlvariantnotnull
    --Remote2k 是回送伺服器。

有 SP3 之前，SQL Server 會傳回下列錯誤訊息：

    伺服器：Msg 7356，層級 16，狀態 1，行 1
    OLE DB Provider 'msdasql' 提供給資料行的中繼資料不一致。
    中繼資料資訊在執行時間已變更。

套用 SP3 或以上版本之後，SQL Server 會傳回下列錯誤訊息：

    伺服器：Msg 7356，層級 16，狀態 1，行 1
    OLE DB Provider 'msdasql' 提供給資料行的中繼資料不一致。
    中繼資料資訊在執行時間已變更。
    OLE DB 錯誤追蹤 [非介面錯誤： 資料行 'sql_variant' (已報告編譯時期物件的序號 3) '"dqtable"."dbo"."sqlvariantnotnull"' 以取得編譯時期 16 且 執行時期為 0 時的 DBCOLUMNFLAGS_ISFIXEDLENGTH]。

### 5.1.10 傳回 SQL 陳述式的新函數 fn_get_sql

SP3 引進

SP3 及以上版本包括了新的 fn_get_sql 函數，此函數會傳回 SQL 陳述式文字給特定的 SQL 控制代碼。此外，已將三個新資料行新增到 sysprocesses 系統資料表以支援這個函數，其列於下列表格中。

資料行名稱 | 資料型別 | 描述
--- | --- | ---
sql_handle | binary(20) | 代表目前執行的批次或物件。
stmt_start | int | 所指定 sql_handle 之目前 SQL 陳述式的開始位移。
stmt_end | int | 所指定 sql_handle 之目前 SQL 陳述式的結束位移。 -1 的值表示由指定 sql_handle 的 fn_get_sql 函數所傳回的結果，目前的陳述式已執行到結尾。

##### 語法

fn_get_sql ([ @SqlHandle = ] SqlHandle )

##### 引數

[ @SqlHandle = ] SqlHandle

控制代碼值。SqlHandle 是 binary(20)。

##### 傳回的資料表

資料行名稱 | 資料型別 | 描述
--- | --- | ---
dbid | smallint | 資料庫識別碼。這個值是臨機操作 SQL 陳述式的 NULL。
objectid | Int | 資料庫物件的識別碼。這個值是臨機操作 SQL 陳述式的 NULL。
number | smallint | 群組數目，如果程序已進行組合。這個值 0 代表不是程序的項目，而 NULL 則代表臨機操作 SQL 陳述式。
encrypted | Bit | 指出物件是否經過加密。如果物件沒有加密則值為 0，若已加密則為 1。
text | Text | SQL 陳述式的文字。這個值為 NULL 代表已加密的物件。

##### 註解

您可以從 sysprocesses 系統資料表的 sql_handle 資料行取得有效的 SQL 控制代碼。

如果您傳送快取中不再存在的控制代碼時，fn_get_sql 會傳回空白的結果集。如果您所傳送的控制代碼是無效的，批次會停止，且會傳回下列的錯誤訊息：

伺服器：Msg 569，層級 16，狀態 1，程序 fn_get_sql，行 12 傳送到 fn_get_sql 的處理是無效的。``

SQL Server 2000 無法快取某些 Transact-SQL 陳述式，如大量複製陳述式以及字串常值大於 8 KB 的陳述式。您無法使用 fn_get_sql 函數來擷取那些陳述式的控制代碼。

會為可能包含密碼的文字，針對結果集的 text 資料行進行篩選。

fn_get_sql 函數傳回的資訊與 DBCC INPUTBUFFER 命令類似。當無法使用 DBCC INPUTBUFFER 時，則可以使用 fn_get_sql，例如：

- 當事件超過 255 個字元時。
- 當您必須傳回預存程序的目前最高巢狀層級時。例如，有兩個名為sp_1 及 sp_2 的預存程序。如果 sp_1 呼叫 sp_2，且您在 sp_2 執行時從 sysprocesses 系統資料表取得控制代碼，則 fn_get_sql 函數會傳回有關 sp_2 的資訊。此外，fn_get_sql 函數會在目前最高的巢狀層級傳回預存程序的完整文字。

##### 權限

只有 sysadmin 固定伺服器角色的成員可以執行 fn_get_sql 函數。

##### 範例

資料庫系統管理員可以使用 fn_get_sql 函數以協助診斷問題程序。系統管理員定義問題伺服器程序識別碼 (SPID) 之後，系統管理員即可擷取該 SPID 的 SQL 控制代碼、以該控制代碼呼叫 fn_get_sql 函數，以及使用啟動及停止位移來判定問題 SPID 的 SQL 文字。例如：

    DECLARE @Handle binary(20)
    SELECT @Handle = sql_handle FROM sysprocesses WHERE spid = 52
    SELECT * FROM ::fn_get_sql(@Handle)

### 5.1.11 跨資料庫擁有權鏈結

SP3 引進

這個 Service Pack 提供開啟及關閉跨資料庫擁有權鏈結的新選項。

當安裝 Database Components SP3a 時，[回溯相容性檢查清單] 對話方塊會顯示設定跨資料庫擁有權鏈結的選項。安裝程式預設會關閉所有使用者資料庫的跨資料庫擁有權鏈結。您可以啟用所有資料庫的跨資料庫擁有權鏈結。相關資訊，請參閱〈回溯相容性檢查清單對話方塊〉。

在安裝 Desktop Engine SP3a 時，您可以為所有的資料庫使用 ALLOWXDBCHAINING 安裝程式參數來啟用跨資料庫擁有權鏈結。相關資訊，請參閱 3.7.3 節〈MSDE 2000 安裝程式參數〉。

附註 不建議您啟用所有資料庫的跨資料庫擁有權鏈結。

您可以在安裝之後，使用下列方法來開啟及關閉執行個體中所有資料庫的跨資料庫擁有權鏈結：

- 使用 sp_configure 系統預存程序的新 Cross DB Ownership Chaining 引數。
- 使用 [允許跨資料庫擁有權鏈結] 選項，其在 Enterprise Manager 中 [SQL Server 屬性] 對話方塊的 [安全性] 頁籤上。
- 使用 SQLServer.Configuration.ConfigValues 資料庫管理物件 (DMO) 集合。當 SQLServer 物件參照 SQL Server 2000 SP3 或以上版本的執行個體時，這個集合會包含名為 Cross DB Ownership Chaining 的 ConfigValue 物件。

如果該執行個體的跨資料庫擁有權鏈結遭到關閉，則您可以將其設定為個別的資料庫。請使用下列方法，來開啟及關閉資料庫的跨資料庫擁有權鏈結：

- 使用 sp_dboption 系統預存程序的新 db chaining 選項。
- 使用 [允許跨資料庫擁有權鏈結] 選項，其在 Enterprise Manager 中 [資料庫屬性] 對話方塊的 [選項] 頁籤上。
- 使用 DBOption2 DMO 物件的 DBChaining 屬性。

附註 如果您已經在發行前的 SP3 (8.00.[BUILD_NUMBER] 組建之前) 版本上啟用跨資料庫擁有權鏈結，則您在安裝 SP3a 發行版本後必須再重新啟用。

相關資訊，請在執行「安裝程式」期間，按一下 [回溯相容性檢查清單] 頁上的 [說明] 按鈕，來下載〈SQL Server 2000 線上叢書〉的更新版本，或是參閱 Knowledge Base 文章 810474。

### 5.1.12 追蹤旗標 1204 的增強功能

SP3 引進

追蹤旗標 1204 會傳回參與死結以及目前受到影響之命令的鎖定類型。在 SP3 及以上版本中，當有這個追蹤旗標時，則死結資訊會自動寫入到錯誤記錄檔。

### 5.1.13 sp_changedbowner 的權限變更

SP3 引進

只有 sysadmin 固定伺服器角色的成員才能夠執行 sp_changedbowner 系統預存程序。

### 5.1.14 偵錯功能變更

SP3 引進

Microsoft Visual Studio® 6.0 及之前的版本，或是 SP3 之前的 SQL Server Query Analyzer 預設會關閉偵錯預存程序的功能。預設也會關閉應用程式偵錯 (於用戶端應用程式偵錯期間，停止於 SQL Server Transact-SQL 中斷點)。若要啟用偵錯功能，則執行 sp_sdidebug，來傳遞 legacy_on 參數。若要停用偵錯，則傳遞 legacy_off 到這個程序。

附註 不建議您在實際執行的伺服器上執行 sp_sdidebug 預存程序。

相關資訊，請參閱 Microsoft Knowledge Base 文章 328151。此文章可在 Microsoft Product Support Services Knowledge Base 中取得。

### 5.1.15 UDP 連接埠 1434 上的作業

SP3a 引進

從 SQL Server 2000 SP3a 開始，沒有設定為支援網路通訊的 SQL Server 2000 資料庫引擎及 MSDE 2000 執行個體，都將停止使用 User Datagram Protocol (UDP) 連接埠 1434。設定為支援網路通訊的執行個體將會使用 UDP 1434。

每當該執行個體的所有伺服器網路程式庫 (除共用記憶體的網路程式庫之外) 停用時，升級至 SP3a 的執行個體將會停止使用 UDP 1434。無論何時，在您啟用任何伺服器網路程式庫時，執行個體就會開始使用連接埠 1434。若需停用或啟用伺服器網路程式庫的相關資訊，請參閱《SQL Server 2000 線上叢書》中的〈SQL Server 網路公用程式〉。

直到電腦上的 SQL Server 2000 及 MSDE 2000 的所有執行個體升級到 SP3a，且設定為不支援網路通訊之後，該電腦所使用的 UDP 連接埠 1434 才會停止。

不論 UDP 連接埠 1434 是否為開啟或關閉，都不需依賴共用記憶體網路程式庫的狀態。共用記憶體網路程式庫僅用於本機連線，且不使用網路。共用記憶體網路程式庫永遠是作用中的狀態，無法予以啟用或停用。

您也可以指定在安裝或升級 MSDE 2000 的執行個體時，是否停用伺服器網路程式庫。請使用「MSDE 2000 安裝程式」公用程式的 DISABLENETWORKPROTOCOLS 參數，或是 MSDE 2000 合併模組的 SqlDisableNetworkProtocols 屬性。若需這些選項的相關資訊，請參閱 3.7.3 節〈MSDE 2000 安裝程式參數〉。

## 5.2 Analysis Services 的增強功能

本節討論 SP3a 中所包含之 SQL Server 2000 Analysis Services 的增強功能。

### 5.2.1 遠端資料分割

SP1 引進

在已安裝 SP1 或以上版本的本機伺服器上建立遠端資料分割時，遠端伺服器必須使用一個可完全存取本機伺服器上的父 Cube 的網域使用者帳戶。任何使用者帳戶若是本機伺服器上的 OLAP 管理員群組的成員，都擁有完全的存取權。

此外，如果本機伺服器已安裝 SP1 或以上版本，則遠端伺服器也必須已安裝 SP1 或以上版本，本機伺服器方才可以建立或管理遠端資料分割。

### 5.2.2 已更新之 Analysis Services 可重新散發的用戶端安裝程式

SP1 引進

Analysis Services SP1 及以上版本包括下列用戶端可重新散發之安裝程式的已更新版本：

- PTSLite.exe
- PTSFull.exe

這些檔案位於 Service Pack 安裝目錄下的 \Msolap\Install\PTS 路徑。

附註 PTSFull.exe 包括 MDAC；而 PTSLite.exe 則無。

在您的應用程式中使用這些已更新的用戶端安裝程式，來預防或解決使用 Analysis Services 及 Microsoft Office XP 時可能遇到的用戶端安裝問題。

附註 將 Analysis Services 與 Office XP 搭配使用時，強烈建議您升級用戶端。

### 5.2.3 支援協力廠商資料採擷演譯法提供者

SP1 引進

Analysis Services SP1 及以上版本包含協力廠商資料採擷演譯法提供者的支援。若需開發資料採擷演譯法提供者的相關資訊，請參閱 "Third Party Data Mining Providers" 白皮書以及包含範例資料採擷演譯法提供者之程式碼的 OLE DB for Data Mining Resource Kit。

### 5.2.4 在已更新用戶端檔案的電腦上安裝 Analysis Services

SP1 引進

如果您在包含已更新的用戶端檔案 (如 SQL Server 2000 SP1 或 Office XP) 的電腦上安裝 SQL Server 2000 Analysis Services，則您必須套用 Analysis Services SP1 或以上版本，以確定用戶端運作正常且可以瀏覽 Cube。

### 5.2.5 虛擬 Cube 參考之 OLAP Cube 所增加的限制

SP3 引進

虛擬 Cube 現在最多可以參考 255 Cube。然而，SP3 之前所發行的任何 Microsoft PivotTable® Service 版本，看不到任何參照多於 64 Cube 的虛擬 Cube。

### 5.2.6 新增 DESCRIPTION 關鍵字

SP3 引進

本機的 Cube 現在可支援量值及維度內建的成員屬性 DESCRIPTION。新增到 CREATE CUBE多維度運算式 (MDX) 陳述式的 DESCRIPTION 關鍵字，會用來支援 DESCRIPTION 內建成員屬性的使用。下列 BNF 子句描述對 CREATE CUBE 陳述式所做的變更：

    <dimensions def> :: = DIMENSION <dimension name> [<time def>]
      [DIMENSION_STRUCTURE <sub_type>] [<hidden def>]
      [DESCRIPTION <description expression>]
      <options def> <comma> <hierarchy def list>
    <measures def> :: = MEASURE <measure name> <measure function def>
      [<measure format def>] [<measure type def>] [<hidden def>]
      [DESCRIPTION <description expression>] [<comma> <measures def>]

### 5.2.7 新增 PivotTable Service 限制用戶端屬性

SP3 引進

Restricted Client 是 SP3 所引進的新 PivotTable Service 連接字串屬性。這個屬性可用來限制 PivotTable Service，使其無法使用本機的 Cube 功能。任何嘗試使用的陳述式只要牽涉到本機 Cube 的建立或使用 (如 CREATE CUBE、CREATE GLOBAL CUBE 及 CREATE SESSION CUBE 陳述式)，就會造成錯誤。此外，任何牽涉到深層遞迴的陳述式 (如一系列的巢狀 DRILLDOWN 陳述式)，只要陳述式有可能造成由 PivotTable Service 進行維護的陳述式推疊溢位，就會造成錯誤。

這個屬性存放字串值。如果該值設定成以 "Y"、"y"、"T" 或 "t" 為開頭的任何字串值，或是可轉換成 0 以外之數值的任何字串值，則 PivotTable Service 會如前文所述地受到限制。如果該值設定為其他的任何字串值，包括空白字串 ("")，或是可轉換成等於 0 之數值的任何字串值，則 PivotTable Service 不會受到限制。這個屬性的預設值為 "0"。

附註 這個屬性不會限制本機資料採擷模型的用途。

### 5.2.8 安全選項屬性中的變更

SP3 引進

將 Safety Options 屬性設定為 DBPROP_MSMD_SAFETY_OPTIONS_ALLOW_SAFE 也會妨礙本機 Cube 中 PASSTHROUGH 關鍵字的使用方式。

### 5.2.9 預設停用 Meta Data Services 的移轉儲存機制

SP3 引進

SP3 或以上版本已停用在移轉儲存機制精靈中使用 Meta Data Services 儲存機制格式的選項，而且不建議您使用這個格式。然而，如果基於商業用途，而需要這個格式，則您可以透過 EnableMigrationToMetaDataServicesFormat 登錄機碼來啟用該選項。

這個登錄機碼預設並不存在，其必須手動在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLAP Server\Server Connection Info 建立，並設定以啟用 Meta Data Services 格式的儲存機制移轉作業。這個登錄機碼存放的字串值會區分大小寫。如果該值設為 1 或 True，則會啟用 Meta Data Services 格式的儲存機制移轉作業。如果該值設為其他任何的字串值，或是如果該登錄機碼不存在，則會停用 Meta Data Services 格式的儲存機制移轉作業。

附註 如果這個登錄機碼的值有所變更，則該變更會立即生效。

### 5.2.10 必須在遠端資料資料夾上修改權限

SP3 引進

如果「Analysis Services 資料」資料夾不在執行 Analysis Server 的電腦上，則您必須在執行「SP3a 安裝程式」之後，修改資料夾的權限。在遠端電腦上，設定資料夾的權限，讓 OLAP Administrators 群組 (位於執行 Analysis Server 的電腦上) 中的所有成員能夠擁有完整的控制存取權限。從 OLAP Administrators 群組新增或移除成員時，請確定已修改遠端資料資料夾上的權限，才能反映目前 OLAP Administrators 群組的成員資格。這可讓備份及還原作業正常運作。

此外，執行「SP3a 安裝程式」之後，您必須讓執行 Analysis Server 的帳戶擁有遠端資料資料夾的完整控制存取權限。

如果您將 SP3a 套用到叢集組態中執行 Analysis Services 的執行個體，則必須將遠端資料資料夾的完整控制存取權限，提供給網域層級的 OLAP Administrators 群組。若需建立及使用網域層級之 OLAP Administrators 群組的相關資訊，請參閱可從 Microsoft Product Support Services Knowledge Base 取得之支援文章 308023。

## 5.3 複寫增強功能

本節討論 SP3a 中所包含之 SQL Server 2000 複寫的增強功能。

### 5.3.1 交易式複寫 UPDATE 自訂預存程序

SP1 引進

在交易式複寫安裝期間，將於訂閱資料庫中建立插入、刪除及更新動作的自訂預存程序。不管有多少個資料行受到 UPDATE 陳述式影響，更新自訂預存程序會更新訂閱資料表中的所有資料行。會將所有未變更的資料行重設為更新前即已存在的相同值。這個動作通常不會造成任何問題。不過，如果任何一個資料行被編入索引，則重設可能耗費許多時間。

如果您在使用交易式複寫且訂閱資料表上有數個索引，且僅有若干資料行值因為更新而有所變更，則在「訂閱者」中套用變更時，維護索引的額外工作量可能會限制效能。例如，基於報告用途所使用的訂閱資料庫可能比發行集資料庫擁有更多的索引。以動態方式建置執行時期的 UPDATE 陳述式可以改善效能。這個更新僅包括已變更的資料行，且建立最佳化的 UPDATE 字串。

這個 Service Pack 包括了新的預存程序 sp_scriptdynamicupdproc，其會用來產生一個自訂的預存程序，您可以在「訂閱者」中使用該程序，以動態方式建置執行時期的 UPDATE 陳述式。然而，在執行時期建置動態的 UPDATE 陳述式需要額外的處理。

#### sp_scriptdynamicupdproc

預存程序 sp_scriptdynamicupdproc 會產生 CREATE PROCEDURE 陳述式，其會建立動態的更新預存程序。之後，依據指出哪些資料行將變更的 MCALL 語法，以動態方式建置自訂預存程序內的 UPDATE 陳述式。如果訂閱資料表中的索引數目不斷地增加，且變更的資料行數目很小，則請使用這個預存程序。這個預存程序將在發行集資料庫上的「發行者」中執行。

##### 語法

sp_scriptdynamicupdproc [ @artid =] artid

##### 引數

[@artid =] artid

發行項識別碼。artid 是 int，其沒有預設值。

##### 結果集

傳回由單一 nvarchar(4000) 資料行組成的結果集。結果集將構成用來建立自訂預存程序的完整 CREATE PROCEDURE 陳述式。

##### 註解

sp_scriptdynamicupdproc 用於交易式複寫中。預設 MCALL 指令碼邏輯包括了 UPDATE 陳述式內所有資料行，並使用一個點陣圖來判定已變更的資料行。如果資料行並未變更，資料行將恢復本身的設定，通常這不會造成問題。如果資料行被編入索引，將需要進行額外的處理。相反地，這個預存程序會使用動態方式：其僅包括已變更的資料行，而其提供了最佳化的 UPDATE 字串。不過，當建置動態的 UPDATE 陳述式時，會在執行時期產生額外的處理。因此，建議您測試動態預存程序及靜態預設方法，然後選擇符合您特殊需要的最佳解決方案。

##### 權限

public 角色的成員可以執行 sp_scriptdynamicupdproc。

##### 範例

這個範例將在 pubs 資料庫中的 authors 資料表上建立一個發行項 (artid 設為 1)，並指定 UPDATE 陳述式為要執行的自訂預存程序：

    'MCALL sp_mupd_authors'

若要在「訂閱者」中產生由「散發代理程式」所執行的自訂預存程序，可以在「訂閱者」中執行下列的預存程序：

    EXEC sp_scriptdynamicupdproc @artid = '1'
    The statement returns:

    create procedure [sp_mupd_authors]
      @c1 varchar(11),@c2 varchar(40),@c3 varchar(20),@c4 char(12),
      @c5 varchar(40),@c6 varchar(20),@c7 char(2),@c8 char(5),
      @c9 bit,@pkc1 varchar(11),@bitmap binary(2)
    as

    declare @stmt nvarchar(4000), @spacer nvarchar(1)
    select @spacer =N''
    select @stmt = N'update [authors] set '

    if substring(@bitmap,1,1) & 2 = 2
    begin
      select @stmt = @stmt + @spacer + N'[au_lname]' + N'=@2'
      select @spacer = N','
    end
    if substring(@bitmap,1,1) & 4 = 4
    begin
      select @stmt = @stmt + @spacer + N'[au_fname]' + N'=@3'
      select @spacer = N','
    end
    if substring(@bitmap,1,1) & 8 = 8
    begin
      select @stmt = @stmt + @spacer + N'[phone]' + N'=@4'
      select @spacer = N','
    end
    if substring(@bitmap,1,1) & 16 = 16
    begin
      select @stmt = @stmt + @spacer + N'[address]' + N'=@5'
      select @spacer = N','
    end
    if substring(@bitmap,1,1) & 32 = 32
    begin
      select @stmt = @stmt + @spacer + N'[city]' + N'=@6'
      select @spacer = N','
    end
    if substring(@bitmap,1,1) & 64 = 64
    begin
      select @stmt = @stmt + @spacer + N'[state]' + N'=@7'
      select @spacer = N','
    end
    if substring(@bitmap,1,1) & 128 = 128
    begin
      select @stmt = @stmt + @spacer + N'[zip]' + N'=@8'
      select @spacer = N','
    end
    if substring(@bitmap,2,1) & 1 = 1
    begin
      select @stmt = @stmt + @spacer + N'[contract]' + N'=@9'
      select @spacer = N','
    end
    select @stmt = @stmt + N' where [au_id] = @1'
    exec sp_executesql @stmt, N' @1 varchar(11),@2 varchar(40),@3 varchar(20),
      @4 char(12),@5 varchar(40),@6 varchar(20),@7 char(2),@8 char(5),@9 bit',
      @pkc1,@c2,@c3,@c4,@c5,@c6,@c7,@c8,@c9

    if @@rowcount = 0
       if @@microsoftversion>0x07320000
          exec sp_MSreplraiserror 20598

在執行這個預存程序後，您可以使用結果指令碼，以手動方式在「訂閱者」中建立預存程序。

### 5.3.2 唯一資料行上的交易式複寫 UPDATE 陳述式

SP1 引進

在交易式複寫中，通常會將 UPDATE 陳述式複寫為更新。但是，如果更新變更了任何資料行，且該資料行是唯一索引、叢集索引或用來作為唯一條件約束之運算式的一部份，則更新在「訂閱者」會被視為 DELETE 陳述式來執行，且之後會有 INSERT 陳述式。這樣做是因為這種更新可能會影響多個資料列，而且如果逐列傳遞更新，可能會發生唯一性違規。

如果更新只影響一個資料列，則不會發生唯一性違規。因此，已將追蹤旗標 8207 新增至這個 Service Pack，以容許將對任何唯一資料行 (僅影響一個資料列) 進行的更新複寫成 UPDATE 陳述式。特別加入這個最佳化，以便應用程式可在「訂閱者」中安裝使用者定義的 UPDATE 觸發程序，以及要求這些觸發程序為了僅影響唯一資料行上的一個資料列的更新而啟動。

若要使用追蹤旗標 8207，請在啟動「記錄讀取器代理程式」之前，先從命令提示 (sqlservr.exe -T8207) 來開啟，或在執行時期使用 DBCC TRACEON(8207, -1) 來開啟。

重要事項 一般而言，追蹤旗標 8207 會與唯讀交易式複寫搭配使用。如果主索引鍵 UPDATE 會在「訂閱者」中發生，則請勿在可更新的訂閱上使用此追蹤旗標。

### 5.3.3 已從並行快照處理移除的限制

SP1 引進

在 SQL Server 2000 中，如果發行資料表擁有不是主索引鍵或叢集索引鍵的唯一索引，則不建議您進行並行快照處理。在產生並行快照時，如果修改了叢集索引鍵的資料，則在套用並行快照到「訂閱者」時，複寫可能會因為重複的索引鍵錯誤而失敗。使用這個 Service Pack 會移除使用並行快照處理的限制。

### 5.3.4 交易式複寫指令碼自訂預存程序

SP1 引進

設定非同步訂閱 (也就是不會接收初始快照的訂閱) 時，INSERT、UPDATE 及 DELETE 陳述式的自訂預存程序必須以手動方式建立。一般而言，當傳遞初始快照時，這些陳述式將建立在「訂閱者」中。新的預存程序 sp_scriptpublicationcustomprocs 已加入，可讓您在發行集層級中產生自訂的預存程序指令碼。這個新功能可讓您更輕易地設定非同步的訂閱。

#### sp_scriptpublicationcustomprocs

在發行集中自動產生自訂程序結構的選項已啟用，預存程序 sp_scriptpublicationcustomprocs 指令碼會撰寫所有資料表發行項的自訂 INSERT、UPDATE 及 DELETE 程序。sp_scriptpublicationcustomprocs 在設定以手動方式套用快照的訂閱時特別有用。

##### 語法

sp_scriptpublicationcustomprocs [@publication]= publication_name

##### 引數

[@publication]`=` publication_name

發行集的名稱。publication_name 是 sysname，其沒有預設值。

##### 傳回碼值

0 (成功) 或 1 (失敗)

##### 結果集

傳回由單一 nvarchar(4000) 資料行組成的結果集。結果集將構成建立自訂預存程序所需的完整 CREATE PROCEDURE 陳述式。

##### 註解

自訂程序並非是針對沒有自動產生自訂程序 (0x2) 結構描述選項的發行項而撰寫的。

##### 權限

執行權限已授與給 public；這個預存程序內將會執行程序安全性檢查，以限制存取 sysadmin 固定伺服器角色的成員，以及目前資料庫中 db_owner 固定資料庫角色的成員。

##### 範例

這個範例將在名為 Northwind 的發行集中產生自訂的預存程序指令碼。

    exec Northwind.dbo.sp_scriptpublicationcustomprocs
    @publication = N'Northwind'

### 5.3.5合併複寫保留型中繼資料清除

SP1 引進

當合併複寫系統資料表包含大量的中繼資料時，清除中繼資料可以提高效能。在 SQL Server 2000 SP1 之前，執行 sp_mergecleanupmetadata 即可清除中繼資料。不過，SQL Server 2000 SP1 及以上版本包括保留型中繼資料清除，也就是說中繼資料可以自動從下列系統資料表中刪除：

- MSmerge_contents
- MSmerge_tombstone
- MSmerge_genhistory
- 任何前影像資料表 (如果有)

附註 如果在發行集上啟用了 @keep_partition_changes 同步最佳化選項，則前影像資料表就會存在。

保留型中繼資料清除發生的狀況，如下所示：

- 如果 –MetadataRetentionCleanup 合併代理程式參數設為 1 (預設值)，則合併代理程式將清除合併中所包含的「訂閱者」及「發行者」。
- 如果 -MetadataRetentionCleanup 參數設為 0，自動清除將不會發生。在這種情形中，可經由執行 sp_mergemetadataretentioncleanup，以手動方式初始化保留型中繼資料清除。此預存程序必須在每個應該清除的「發行者」及「訂閱者」中執行。建議您 (但非必要) 在相似的時間點中清除「發行者」及「訂閱者」(請參閱本節稍後的防止假衝突)。

  附註 SQL Server 2000 SP1 及以上版本所包含之所有合併代理程式設定檔的 -MetadataRetentionCleanup 參數都會設定為 1。如果您將伺服器升級至 SP1 或以上版本，之後再新增合併複寫，則合併代理程式設定檔就會自動更新以併入此參數。如果您將已經啟用合併複寫的伺服器升級至 SP1 或以上版本，則合併代理程式設定檔將不會自動更新；而是要執行 sp_add_agent_parameter 來更新設定檔 (請參閱本節稍後描述的 sp_add_agent_parameter 的額外參數)。

  重要事項 發行集的預設保留期間為十四天。如果某一發行項屬於許多發行集，就可能有不同的保留期間。在那種情況下，會使用最長的保留期間來決定最早可能發生的清除時間。如果在資料庫上有多重發行集，且其中一個發行集使用無限的發行集保留期間 (@retention=0)，則不會自動清除資料庫的合併中繼資料。基於這個理由，請小心使用無限的發行集保留期限。

#### sp_add_agent_parameter 的額外參數

系統預存程序 sp_add_agent_parameter 現在有了 MetadataRetentionCleanup 參數，可讓您從合併代理程式設定檔來新增或移除中繼資料保留期限清除。數值 1 表示設定檔應該包括清除；數值 0 則表示它不該包括清除。例如，若要將中繼資料保留期限清除新增至設定檔，請執行下列程式碼：

    EXEC sp_add_agent_parameter @profile_id=<my_profile_id>,
      @parameter_name='MetadataRetentionCleanup', @parameter_value=1

#### 不同版本 SQL Server 拓樸中的中繼資料清除

若要讓自動保留型清除在合併複寫中的資料庫發生，則該資料庫及合併代理程式必須都位在執行 SQL Server 2000 SP1 或以上版本的伺服器上。例如：

- SQL Server 7.0 提取「訂閱者」不會在 SQL Server 2000 SP1 發行者中執行清除。
- SQL Server 2000 SP1 發送「合併代理程式」不會在 SP1 以前的 SQL Server 2000 訂閱者資料庫中執行清除。
- SQL Server 2000 SP1 發送「合併代理程式」會在 SQL Server 2000 SP1 發行者資料庫中執行清除，即使它有執行 SQL Server 2000 或更早版本的訂閱者也一樣。

在某些伺服器上 (而不是在其他伺服器上) 的自動清除幾乎都會造成假衝突，但發生機率應該很低。拓樸若是包含 SQL Server 2000 SP1 之前的 SQL Server 版本，則可在所有不會自動清除的伺服器上執行 sp_mergemetadatacleanup 來看出其效能優點。

#### 防止假衝突

保留型中繼資料清除可防止其他節點的變更發生非交集及無訊息覆寫的情況。不過，如果符合下列條件時，則可能會發生假衝突：

- 某個節點的中繼資料已遭到清除，而另一個的中繼資料則尚未遭到清除。
- 已清除的節點中的後續更新發生在中繼資料已刪除的資料列上。

例如，如果「發行者」的中繼資料已遭到清除，但「訂閱者」中的中繼資料尚未清除，且已更新了「發行者」，則即使資料似乎同步，也會發生衝突。

若要防止這種衝突，請確定在大致相同的時間內清除相關節點的中繼資料。如果將 -MetadataRetentionCleanup 設定為 1，則在開始合併之前會自動清除「發行者」及「訂閱者」，以確定會同時清除節點。如果衝突發生時，請使用合併式複寫衝突檢視器來檢視衝突，且視需要來變更結果。

如果發行項屬於數個發行集，或是處於重新發行的狀況，則「發行者」及「訂閱者」中的特定資料列的保留期間可能不同。若要減少清除某一邊 (而非另一邊) 的中繼資料的機會，建議不同的發行集最好有類似的保留期間。

附註 如果系統資料表包含大量必須清除的中繼資料，則執行合併處理可能會耗費很長的時間。定期清除中繼資料可以避免這個問題。

### 5.3.6 合併複寫的備份及還原問題

SP1 引進

自備份還原的發行集資料庫首先應該與擁有全域訂閱 (亦即，擁有指定優先順序值的訂閱) 的訂閱資料庫同步，以保證正確的交集運作方式。同步化可確保發行集資料庫中因還原作業而失去的變更可正確地重新套用。

請勿對發行集資料庫與擁有匿名訂閱的訂閱資料庫進行同步化。因為匿名訂閱沒有足夠的中繼資料可以將變更套用至發行集資料庫，這樣的同步化可能導致非交集的資料。

當您計劃合併複寫的備份及還原作業時，請考慮下列其他問題：

- 自未超過保留期間的備份來還原訂閱資料庫。

僅在備份不晚於「訂閱者」所訂閱的所有發行集的最短保留期間時，才會從備份還原訂閱資料庫。例如，如果「訂閱者」分別訂閱了三個保留期間為 10、20 及 30 天的發行集，則用來還原資料庫的備份不應該晚於 10 天。

- 在產生備份前先同步化。

強烈建議您在執行備份前，先讓「訂閱者」與「發行者」同步。不然，如果從這個備份還原「訂閱者」，系統可能無法正確地交集。雖然備份檔本身可能是新的，但是上次與「發行者」同步的時間可能與保留期間一樣久。例如，考慮到保留期間為 10 天的發行集。上次同步是在 8 天前，且現在已執行備份。如果在 4 天後套用備份，則上次同步發生在 12 天前，已超出保留時間。如果「訂閱者」剛好在備份前進行同步，則訂閱資料庫將在保留期間內。

- 如果您變更發行集保留值，請重新初始化「訂閱者」。

如果您需要變更發行集保留值，請用手動方式重新初始化「訂閱者」，以避免產生非交集的資料。當到達發行集保留期間時，保留的中繼資料清除功能將刪除合併系統資料表中過舊的中繼資料。

發行集保留值是用來判斷未在保留期間內同步的訂閱是否已經過期。清除之後，如果發行集保存期間拉長了，而且訂閱嘗試要與發行者合併 (而其已經刪除了中繼資料)，則該訂閱會由於保存期限值的增加而不會到期。此外，發行者沒有足夠的中繼資料可將變更下載到訂閱者，進而會導致非交集的情況。

- 對於所有「發行者」及它們的替代同步夥伴使用相同的發行集保留值。使用不同的值可能會導致非交集的情況。

### 5.3.7 從不同版本的 SQL Server 還原已複寫的資料庫

SP1 引進

將備份還原到相同的伺服器及資料庫 (執行與備份建立所在之伺服器一樣的版本)，這將可保留您的複寫設定。如果您把複寫資料庫還原到不同於用來備份資料庫的 SQL Server 版本，請考慮下列問題：

- 如果您是從以 SQL Server 2000 建立的備份，來將資料庫還原到 SQL Server 2000 SP3a，且想要保留複寫設定，則您必須執行 sp_vupgrade_replication。執行 sp_vupgrade_replication 可確保會升級複寫中繼資料。如果您未執行 sp_vupgrade_replication，則複寫中繼資料可能會處於無法預測的狀態。
- 如果您是從以 SQL Server 7.0 (版本 SP1、SP2、SP3 及 SP4) 建立的備份，來將資料庫還原到 SQL Server 2000，且想要保留複寫設定，則在安裝 Service Pack 之前，您必須重新建立備份。您可以直接從 SQL Server 7.0 所建立的複寫資料庫備份，將資料庫還原到 SQL Server 2000 SP3a，但複寫設定將無法保留。

### 5.3.8 記錄讀取器代理程式的新參數 –MaxCmdsInTran

SP1 引進

由 SP1 開始，新的命令提示參數 -MaxCmdsInTran 便已新增來供「記錄讀取器代理程式」使用。對於影響大多數命令的交易 (通常為大量更新或刪除)，「散發代理程式」必須等待「記錄讀取器代理程式」，將整個交易寫入到散發資料庫後，方可開始將交易傳送到「訂閱者」。這個延遲將封鎖「散發代理程式」，並減少兩個代理程式之間的平行性。

使用 -MaxCmdsInTran，「記錄讀取器代理程式」便可將大型交易分成若干較小的區塊，而每一個區塊含有與 -MaxCmdsInTran 輸入一樣多的命令，或是更少的命令。因此，「散發代理程式」可以在「記錄讀取器代理程式」仍處理同一交易的稍後區塊的同時，開始處理稍早的交易區塊。

這個「記錄讀取代理程式」與「散發代理程式」之間平行性的改善，提高了整體複寫產能。不過，請注意交易區塊在「訂閱者」中會作為個別交易來認可，因而打破了連貫性屬性 ACID (連貫性、一致性、隔離及持久性) 的其中一個屬性。在大多數情況中，這個結果雖不是問題，但還是建議您進行測試以確定。

##### 定義 -MaxCmdsInTran 參數

為 -MaxCmdsInTran 參數值指定正整數 (1 或以上)。指定值為 0 則等於不使用該參數。因為這個參數僅在交易非常大時才會改善效能，所以這個參數的值通常都是 5000 或以上。例如：

    logread.exe -MaxCmdsInTran 10000.

若要使用這個參數，則發行者必須執行 SQL Server 2000 SP1 或以上版本及「記錄讀取器代理程式」，而且散發資料庫必須升級到 SP3 或以上版本。否則，將會忽略 -MaxCmdsInTran。

### 5.3.9 非唯一叢集索引的限制

SP2 引進 (僅限於「交易式複寫」)。

您無法在為交易式複寫發行資料表之後，才在其上建立非唯一的叢集索引。建立索引前，您必須先放棄任何包括資料表的發行集。

### 5.3.10 快照代理程式的新 -MaxNetworkOptimization 命令列引數

SP2 引進

在一般處理過程中，合併複寫能夠針對不屬於「訂閱者」資料分割的資料列，將 DELETE 命令傳送至「訂閱者」。這種類型的 DELETE 命令是指定為不相關的刪除。不相關的刪除不會影響資料完整性或交集，但可能會產生不必要的網路傳輸量。

若要減少由不相關的刪除所造成的網路傳輸量，您可以將新的快照代理程式參數 –MaxNetworkOptimization 與合併複寫發行集搭配使用。設定參數為 1 會將不相關刪除的機會最小化，也就是讓網路最佳化。

附註 只有在合併發行集的同步最佳化選項設定為 True 時 (sp_addmergepublication 的 @keep_partition_changes 參數)，將參數設定為 1 才有作用。

預設值為 0 是因為將參數設為 1 時，會增加中繼資料的儲存量，且如果聯結篩選的多重層級及複雜子集篩選器存在，則會造成發行者的效能降低。您應該小心存取您的複寫拓樸，並只有在不相關的刪除所造成的網路傳輸量高到無法接受時，才將 -MaxNetworkOptimization 設定為 1。

您可以經由執行系統程序 sp_add_agent_parameter 來將此參數新增至快照代理程式設定檔，如下所示：

    EXEC sp_add_agent_parameter 1, 'MaxNetworkOptimization', 1

### 5.3.11 合併複寫使用新角色

SP3 引進

SP3 及以上版本會自動建立新的角色以供合併複寫使用。新角色名稱的格式為 MSmerge-<publication ID>。每個合併複寫發行集的角色會在發行者上建立，並作為發行集存取清單 (PAL) 來控制發行者上合併發行集的存取權。如果這個角色已卸除，您可以執行 SP3 或以上版本中所包含的新預存程序 sp_createmergepalrole，來重新建立角色。預存程序會在發行集資料庫上的發行者端執行以重新建立角色。

##### 語法

sp_createmergepalrole [ @publication = ] 'publication'

##### 引數

[@publication = ] 'publication'

發行集的名稱。publication 是 sysname，其沒有預設值。在重新建立合併複寫所使用的角色時，使用此參數來選取要使用的發行集。

##### 傳回碼值

0 (成功) 或 1 (失敗)

##### 註解

執行 sp_createmergepalrole 可將新資料列新增至新角色的sysusers 資料表。這個新角色的名稱是以指定「發行集」之 sysmergepublications 資料表中的pubid 資料行數值為基礎。角色名稱的首碼是「MSMerge_」，且將 pubid (不含連字號) 值附加到角色名稱。

##### 權限

只有 sysadmin 固定伺服器角色或 db_owner 固定資料庫角色的成員可以執行 sp_createmergepalrole。

### 5.3.12 非系統管理員使用者所建立之訂閱的新需求

SP3 引進

如果建立訂閱的使用者不是 sysadmin 固定伺服器角色的成員，則您必須進行下列其中一項操作：

- 設定 SQL Server 代理程式 Proxy 帳戶的登入及密碼，如此一來，擁有足夠權限的複寫代理程式會與 SQL Server 代理程式作業步驟產生關聯。相關資訊，請參閱《SQL Server 線上叢書》中的〈xp_sqlagent_proxy_account〉主題。
- 執行代理程式之前，先將作業步驟的擁有者變更為身為 sysadmin 固定伺服器角色成員的使用者。

附註 遠端代理程式啟動功能永遠需要作業步驟在 sysadmin 固定伺服器角色中的使用者帳戶內容裡執行。

### 5.3.13 預存程序權限的變更

SP3 引進

數個用來執行、管理及監視複寫拓樸之預存程序上的權限已經遭到變更。這些變更大部分包含更嚴格的權限 (執行預存程序的必要權限)。若需新權限的相關資訊，請檢閱《SQL Server 線上叢書》的更新版本裡複寫預存程序的 Transact-SQL 參照說明文件。若需更新之《SQL Server 線上叢書》的相關資訊，請參閱 1.6 節〈更新的線上叢書文件集已發行〉。

### 5.3.14 sp_addmergearticle 及 sp_changemergearticle 的新參數

SP3 引進

新參數 @published_in_tran_pub 已經新增到 sp_addmergearticle 及 sp_changemergearticle。這個參數是用來指出合併發行集中的發行項，也會在交易式發行集中發行。@published_in_tran_pub 是 nvarchar(5)，其預設值為 FALSE。TRUE 則指出發行項也會在交易式發行集中發行。

附註 當您在 sp_changemergearticle 中變更這個參數時，則必須讓快照無效，且必須重新初始化訂閱者。

### 5.3.15 設定散發及發行精靈的新頁面

SP3 引進

設定散發及發行精靈現在包含一個新頁面：散發者密碼。如果您選擇讓一或多位發行者將伺服器當作遠端散發者使用，且那些發行者中有一或多個都需要密碼，則您必須在此頁上鍵入密碼。發行者與遠端散發者之間的連線是連結伺服器與遠端伺服器的混合。連線會使用登入名稱 distributor_admin。依預設會將發行者在遠端散發者處設定為不受信任的狀態，因此需要密碼。

附註 如果您已經下載並安裝《SQL Server 2000 線上叢書》(最新版 - SP3)，當您按一下新頁面上的 [說明] 按鈕，便可以使用這個資訊。

### 5.3.16 Windows Synchronization Manager 支援變更

SP3 引進

SQL Server 可讓您啟用現有訂閱 (使用 SQL Server Enterprise Manager (SQL-DMO) 及複寫預存程序來建立)，以便與 Windows Synchronization Manager 搭配使用。您也可以使用 Windows Synchronization Manager 來建立新的訂閱。套用 Service Pack 之後，當您同步處理訂閱時，Windows Synchronization Manager 將會提示您輸入密碼，或是同步處理時連線到伺服器所需的密碼。

### 5.3.17 變更附加或還原複寫資料庫的需求

SP3 引進

在某些情況下，複寫可能會在附加或還原已發行之資料庫的過程中失去作用。這些情況有：

- 曾套用 SP3 或以上版本。
- 使用者所附加的資料庫不是 sysadmin 固定伺服器角色的成員之一。
- 未允許跨資料庫鏈結。

如果上述的情況都成立，則您應該執行在附加的或還原的資料庫上的 sp_changedbowner 預存程序。將擁有權指派給 sa 內建系統管理員登入。這可以確保複寫功能正常運作。

附註 您必須是 sysadmin 固定伺服器角色的成員，才能執行 sp_changedbowner。

若需跨資料庫擁有權鏈結的相關資訊，請參閱 5.1.11 節〈跨資料庫擁有權鏈結〉。

## 5.4 SQL Server 代理程式增強功能

本節討論 SP3a 中所包含之 SQL Server 代理程式的增強功能。

### 5.4.1 SQL Server 代理程式記錄帳戶資訊

SP2 引進

「SQL Server 代理程式」作業歷程現在會記錄執行每個作業步驟的 Windows 帳戶。此資訊可協助系統管理員來診斷已排定作業的安全性問題，包括為複寫及「資料轉換服務 (DTS)」工作所定義的已排定作業。

### 5.4.2 主要/目標伺服器組態的變更

SP3 引進

多重伺服器管理是跨多重 SQL Server 執行個體自動化管理作業的處理序。如果您管理兩部或更多的伺服器，且您要集中維護工作，請使用多重伺服器管理。

在 SP3a 中，除非您需要使用 SQL Server 代理程式的 Proxy 帳戶，否則 SQL Server 代理程式服務帳戶不必是 Windows 系統管理員。若需 SQL Server 代理程式之 Proxy 帳戶的相關資訊，請參閱 5.7.3 節〈SQL Server 代理程式之 Proxy 帳戶的改善功能〉。「SQL Server 代理程式」服務帳戶必須是 sysadmin 固定伺服器角色的成員。

使用多重伺服器管理，您至少必須有一部主要伺服器及一部目標伺服器。主要伺服器將作業分配到目標伺服器，並接收其傳回的事件。對於目標伺服器上執行的作業，主要伺服器會儲存作業定義的中央複本。目標伺服器會定期連線到主要伺服器來更新要執行的作業清單。若新的作業存在，則目標伺服器會從主要伺服器下載作業，然後中斷連線。當目標伺服器完成作業後，它就會重新連線到主要伺服器來報告作業的狀態。

套用 SP3a 之前，您必須完成升級 SQL Server 2000 主要/目標伺服器組態的數個步驟。SP3a 所引進的變更與使用 SQL Server 7.0 目標伺服器，或是任何不是執行 SP3a 的伺服器不相容。這是來自原始 SQL Server 2000 功能的變更。

升級您的主要/目標伺服器組態

1. 在主要伺服器上建立新的 MSX (主要伺服器) 帳戶。目的是準備一或多部 TSX (目標伺服器) 以進行升級。若要完成此項操作，請執行下列命令。

       --Option A: Windows authentication
       EXEC sp_grantlogin 'DOMAIN\user'
       GO
       USE msdb
       GO
       EXEC sp_adduser 'DOMAIN\user', 'DOMAIN\user', 'TargetServersRole'
       GO

       --Option B: SQL Server authentication – see explanation below for
       --details.
       EXEC sp_addlogin <MSXAccount>, <MSXAccountPassword>, 'msdb'
       GO
       USE msdb
       GO
       EXEC sp_adduser <MSXAccount>, <MSXAccount>, 'TargetServersRole'
       GO

   其中 <MSXAccount> 代表您所選擇的 SQL 登入名稱，而 <MSXAccountPassword> 則代表相關的密碼。

   附註 這些值都必須加上單引號。

選擇 MSX 帳戶時，您可以有下列的選擇：

- Windows 的帳戶驗證。這是最安全的選項，因為不需要儲存密碼，而且不需擁有本機 Windows 系統管理員權限，即可設定 SQL Server 及 SQL Server 代理程式。
- SQL Server 的帳戶驗證。這會要求 SQL Server 代理程式服務帳戶必須擁有本機 Windows 系統管理權限，因為 SQL Server 會儲存使用者名稱及密碼，來作為本機安全性授權 (LSA) 密碼，而且限制只有本機 Windows 系統管理員才能存取。您可以為所有 TSX 伺服器建立一個帳戶，或是為每部 TSX 伺服器建立各自的帳戶。

請勿指定「SQL Server 代理程式」探查帳戶 (<computer_name>_msx_probe_login)。升級至 SP3 或以上版本期間，SQL Server 會移除原有的探查帳戶，因為 TSX 伺服器不會再使用這些帳戶。

2. 每次升級一部 TSX 伺服器到 SP3a。(在您套用 Service Pack 之前，請參閱步驟 3，以取得升級時間的其它資訊。)
3. 如果要將停機時間減到最小，則在完成 SP3a 更新之後，立即在每一部 TSX 伺服器上執行延伸預存程序 xp_sqlagent_msx_account。

   附註 執行 xp_sqlagent_msx_account 之後，必須停止 SQL 代理程式並在每部伺服器上重新啟動。

   若需 xp_sqlagent_msx_account 的相關資訊，請參閱 5.4.3 節〈新增 SQL Server 代理程式延伸預存程序〉。

4. 套用 SP3a 至您的主要伺服器。「SP3a 安裝程式」會移除原有的 _msx_probe 帳戶，因為 TSX 伺服器不會再使用這些帳戶。如果帳戶擁有 SQL 代理程式作業，則該帳戶不會遭到移除，所以您需要將作業的擁有者變更成另一名使用者，再手動移除這些帳戶。如果您要繼續使用擁有 SQL 代理程式作業的原有 _msx_probe 帳戶，您可能需要變更 _msx_probe 帳戶的密碼。

### 5.4.3 新增 SQL Server 代理程式延伸預存程序

SP3 引進

SP3a 包含新的延伸預存程序，可讓您設定帳戶，使用 SQL Server 代理程式 TSX 伺服器來從 MSX 伺服器下載指示。此帳戶又稱為 MSX 帳戶或是主要伺服器帳戶。

##### xp_sqlagent_msx_account

xp_sqlagent_msx_account 延伸預存程序可將 SQL Server 代理程式 MSX 帳戶使用者名稱及密碼設定給 TSX伺服器上的 LSA 密碼，或將其從 TSX 伺服器上的 LSA 密碼處擷取過來。只有 securityadmin 固定伺服器角色的成員才能夠執行這個延伸預存程序。

必須先執行 SQL Server 代理程式，才可以執行這個延伸預存程序。此外，如果指定的帳戶是 SQL Server 登入，SQL Server 代理程式必須具有本機 Windows 系統管理員權限。SQL Server 代理程式會將使用者名稱及密碼儲存為 LSA 密碼，並限制只有本機 Windows 系統管理員才能存取。

##### 語法

xp_sqlagent_msx_account

{N'GET' |

N'SET' | N'DEL', N'MSX_domain_name', N'MSX_username', N'MSX_password'

}

##### 引數

N'GET'

擷取目前的 SQL Server 代理程式 MSX 帳戶。N'GET' 是 nvarchar，其沒有預設值。未基於安全性理由而報告密碼。

N'SET'

設定將帳戶作為 SQL Server 代理程式 MSX 帳戶。使用 MSX_username 和 MSX_password 參數，以指定當成 SQL Server 代理程式 MSX 帳戶使用的帳戶。N'SET' 是 nvarchar，其沒有預設值。

N'DEL'

刪除 SQL Server 代理程式 MSX 帳戶。

'MSX_domain_name'

保留以供日後使用。

'MSX_username'

用來當作 SQL Server 代理程式 MSX 帳戶 的 Windows 帳戶名稱。指定此參數的空字串和 MSX_password，以選取 Windows 安全性。在這種情況下，會使用 SQL Server 代理程式服務帳戶憑證來登入 MSX 伺服器。MSX_username 是 nvarchar，其沒有預設值。

'MSX_password'

指定於 MSX_username 的 SQL Server 帳戶的密碼。指定此參數的空字串和 MSX_username，以選取 Windows 安全性。在此狀況中，SQL Server 代理程式服務帳戶憑證是使用於登入 MSX 伺服器。MSX_password 是 nvarchar，其沒有預設值。

附註 xp_sqlagent_msx_account 的參數必須依順序指定。無法使用具名的參數。

##### 傳回碼值

成功則傳回的值為 0，失敗則傳回 1。

當 xp_sqlagent_msx_account 失敗且傳回的值為 1 時，則 SQL Server 會產生有關錯誤資訊的錯誤訊息。

##### 結果集

如果已設定 SQL Server 代理程式 MSX 帳戶，則當您指定 N'GET' 時，xp_sqlagent_msx_account 會傳回包含下列資訊的結果集。

資料行 | 資料型別 | 描述
--- | --- | ---
domain | sysname | 無。保留以供日後使用。
username | sysname | 作為 SQL Server 代理程式 MSX 帳戶的帳戶。

如果尚未設定 SQL Server 代理程式 MSX 帳戶，或未指定 N'SET'，則不會傳回結果集。

##### 權限

xp_sqlagent_msx_account 的執行權限預設為 securityadmin 固定伺服器角色的成員。

##### 範例

1. 擷取目前已指派的 SQL Server 代理程式 MSX 帳戶

下列範例會擷取目前指派來作為 SQL Server 代理程式之 MSX 帳戶使用的帳戶：

    EXEC master.dbo.xp_sqlagent_msx_account N'GET'

2. 設定 SQL Server 代理程式 MSX 帳戶為使用 Windows 的帳戶驗證。

下列範例會設定 SQL Server 代理程式 MSX 帳戶以使用「Windows 的帳戶驗證」：

    EXEC master.dbo.xp_sqlagent_msx_account N'SET',
       N'',  -- Reserved for future use
       N'',  -- MSX_username
       N''  -- MSX_password

###### C. 設定 SQL Server 代理程式 MSX 帳戶為 SQL 的帳戶驗證。

下列範例會將 SQL Server 代理程式 MSX 帳戶設定為 Ralph，並為其指定密碼：

    EXEC master.dbo.xp_sqlagent_msx_account N'SET',
       N'',  -- Reserved for future use
       N'Ralph',  -- MSX_username
       N'RalphPwd'  -- MSX_password

###### D. 刪除 SQL Server 代理程式 MSX 帳戶

下列範例會刪除 SQL Server 代理程式的 MSX 帳戶。這表示 SQL Server 代理程式預設為 Windows 整合安全性驗證。

    EXEC master.dbo.xp_sqlagent_msx_account N'DEL'

### 5.4.4 SQL Server 代理程式權限檢查

SP3 引進

SQL Server 現在可進行檢查，以確定代理程式作業擁有者擁有從每項作業附加或覆寫輸出記錄檔的權限。有下列三種情況：

- 如果作業擁有者是 sysadmin 固定伺服器角色的成員，則可將作業輸出記錄檔寫入伺服器。
- 如果作業擁有者是 Windows 使用者，則 SQL Server 會測試以查看使用者是否擁有權限，且可寫入到伺服器上所選的作業輸出記錄檔位置。
- 如果作業擁有者是 SQL Server 使用者，則 SQL Server 會測試 SQL Server 代理程式的 Proxy 帳戶是否擁有權限，且可寫入到伺服器上所選的作業輸出記錄檔位置。如果尚未設定 Proxy 帳戶，則不會撰寫記錄檔。

在所有的狀況中，作業會使用 SQL Server 代理程式憑證撰寫，但 SQL Server 現在可測試，以確定使用者擁有權限，且可寫入到伺服器上所選的作業輸出記錄檔位置。錯誤會出現在作業歷程記錄中，但如果無法撰寫記錄檔，作業步驟亦不會失敗。

### 5.4.5 SQL Agent Mail MAPI 設定檔

SP3 引進

在 SQL Server 2000 的 32 位元版本，SQL Agent Mail 可以設定成使用「擴充式 MAPI」 電子郵件設定檔，來作為傳送電子郵件的警示。您可以使用「擴充式 MAPI」電子郵件應用程式 (例如 Microsoft Outlook)，來建立「擴充式 MAPI」設定檔。在 SQL Server 2000 的 64 位元版本中，SQL Agent Mail 只能使用「簡易式 MAPI」設定檔來作為傳送電子郵件的警示。請勿在 32 位元版本的 SQL Server 2000 中使用「簡易式 MAPI」設定檔。

## 5.5 SQL Server 連接元件的增強功能

本節討論 SP3a 中所包含之 SQL Server 2000 連接元件的增強功能。

### 5.5.1 Microsoft Data Access Components 的更新

SP3a 引進

SP3a 包含 Microsoft Data Access Components (MDAC) 的更新。當您安裝 SP3a 時，同時也會安裝 MDAC 2.7 Service Pack 1a。SQL Server 2000 (MDAC 2.6) 所安裝的 MDAC 版本與 MDAC 2.7 SP1a 的功能相同，只是 MDAC 2.7 SP1a 包含了修正檔及安全性增強功能。MDAC 2.7 SP1a 包含升級到 MSXML 3 SP3 的程式。

附註 如果安裝程式偵測到相同或更新的版本，則不會安裝這個版本的 MDAC。

若需此版本 MDAC 的相關資訊，請參閱 Microsoft Universal Data Access 網站，其位於 microsoft.com 的網頁上。這個 MDAC 版本所包含的修正檔會記載於 Knowledge Base 文章 326848 中。您可以從 Microsoft Product Support Services Knowledge Base 存取此文章。

### 5.5.2 支援 QLogic 虛擬介面架構

SP3 引進

SQL Server 現在可支援 QLogic 虛擬介面架構 (VIA) 系統區域網路 (SAN) 的執行方式。若要啟用 SQL Server 以支援 QLogic VIA 的連線，則用戶端及伺服器電腦都必須在名為 Vihosts 的檔案中提供 IP 位址解析，而其位於適當的 Windows system32\drivers\etc 資料夾中。

Vihosts 檔案的格式應如下所示：

<伺服器電腦的 VI IP 位址> <伺服器電腦名稱>

<用戶端電腦的 VI IP 位址> <用戶端電腦名稱>

例如：

139.4.130.1 SQLCOMPUTER

139.4.130.2 SQLCLIENT

使用個別 QLogic VIA 網路卡的 IP 位址以及實際的電腦名稱。否則，無法建立與具名執行個體或其他 IP 通訊協定 (如 TCP 或具名管道) 的連線。Giganet VIA 連接並不需要 Vihosts 檔。

附註 您必須使用用戶端網路公用程式，在用戶端電腦上識別出正確的 VIA 廠商。在 [廠商] 下拉式方塊中選取適當的值。對應的動作也應該會透過伺服器網路公用程式來在伺服器電腦上完成。

## 5.6 Meta Data Services 的增強功能

本節討論 SP3a 中所包含之 SQL Server 2000 Meta Data Services 的增強功能。

### 5.6.1 中繼資料瀏覽器以 Unicode 匯出

SP1 引進

中繼資料瀏覽器現在可匯出 Unicode 的 XML 型中繼資料。在 SQL Server 2000 SP1 之前，瀏覽器會匯出不支援非英語字元的 ANSI 字碼。使用者看不見這個功能上的變更。在這個 SP3a 版本中，匯出的資料都是以 Unicode 表達。您仍然可以 ANSI 字碼的形式來匯出，只要將 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Repository\Engine\XMLExport 登錄機碼的值設定為 0。下列清單代表您可以為此登錄機碼設定的值：

- NOOBJID=1
- NOHEADER=2
- INDENTATION=4
- UNICODE=8
- LOGUNMAPPEDTAGS=16
- EXPORTBASE=32

若需每一個旗標的相關資訊，請參閱《SQL Server 線上叢書》的〈IExport::Export Method〉。

### 5.6.2 停用指令碼支援

SP3 引進

資訊模型中的指令碼支援已經停用。安裝 SP3a 之後，如果您的應用程式所存取之屬性或方法的指令碼已經定義，則您會收到下列錯誤：

    EREP_SCRIPTS_NOTENABLED

若要啟用指令碼支援

如果您需要繼續執行指令碼，您可以使用下列程序來建立會啟用指令碼支援的登錄設定。

1. 開啟 [登錄編輯程式]，並瀏覽到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft。
2. 建立名為 Repository 的登錄機碼 (若尚未存在)，再建立名為 Engine 的子機碼，如此路徑就成為 Repository\Engine。
3. 在 Engine 登錄機碼上，新增名為 AllowScripting 的新 DWORD 值，並將值設定為 1。

如果您稍後要停用指令碼，將這個新登錄機碼的值設定為 0。

重要事項 您應該永遠保護資訊模型及儲存機制資料庫的安全，以避免未經授權的存取。

### 5.6.3 存取儲存機制資訊的新 RepositoryUser 角色

SP3 引進

SQL Server 會將資料表、預存程序及檢視表 (用來儲存 Meta Data Services 儲存機制引擎所使用的資訊) 集合包含到 msdb 資料庫中。SP3 中新增了名為 RepositoryUser 的新專用角色，而且必須用它來存取及更新儲存機制資訊。會將這些物件上的建立、讀取、更新、刪除及執行權限授與這個角色。public 角色不再擁有這些物件的權限。

這個變更會影響到現有儲存機制物件，還有未來由儲存機制引擎所建立的任何其他物件。透過 Public 角色來存取儲存機制的使用者及應用程式，都必須要新增到 RepositoryUser 角色。

## 5.7 資料轉換服務的增強功能

本節討論 SP3a 中所包含之 SQL Server 2000 Data Transformation Services 的增強功能。

### 5.7.1 DTS 精靈不再限制字串資料行為 255 個字元

SP2 引進

當您將資料匯出至文字檔時，DTS 匯入/匯出精靈現在可設定封裝，來寫入包含字串類型資料的任何資料行，最多可寫入 8000 個字元。

### 5.7.2 記錄由 SQL Server 代理程式執行之 DTS 封裝的安全性內容

SP2 引進

「SQL Server 代理程式」會記錄作業執行時每個步驟下的安全性文字。在 SP3 或以上版本中，安全性內容便會出現在 [作業歷程記錄] 對話方塊中。當您從作業的某一步驟執行 DTS 封裝時，「SQL Server 代理程式」會記錄執行該封裝的使用者帳戶。這個資訊能協助系統管理員診斷權限，並驗證當 DTS 封裝在伺服器上排定要執行時所發生的問題。

### 5.7.3 SQL Server 代理程式之 Proxy 帳戶的改善功能

SP2 引進

在 SP2 之前，儲存在伺服器上的 DTS 封裝無法在 SQL Server 代理程式的 Proxy 帳戶憑證下執行，除非該 Proxy 帳戶對執行伺服器 (從 xp_cmdshell 上執行作業的情況) 或代理程式 (代理程式作業的情況) 的帳戶，擁有其使用者 TEMP 資料夾的存取權。因此，使用者通常需要調整 SQL Server 或 SQL 代理程式啟動帳戶的 TEMP 環境變數，以指出可經由啟動及 Proxy 帳戶都可以存取的目錄，如 C:\TEMP。若為 SP2 及以上版本，如果無法使用該使用者的 Temp 資料夾，也已經增強 DTS 使其可使用系統的 Temp 資料夾，這會大幅減少這些調整的需要。

### 5.7.4 預設停用 Meta Data Services 的儲存功能

SP3 引進

依預設，SP3 及以上版本會停用在 Meta Data Services 中儲存 DTS 封裝的選項。這表示 [Meta Data Services] 選項不會出現在 [儲存 DTS 封裝] 對話方塊中的 [位置] 下拉式清單裡。此外，[DTS 匯入/匯出精靈] 中的 [儲存、排程和複製封裝] 頁上也停用了這個選項。

在 Meta Data Services 中儲存封裝

- 在 SQL Server Enterprise Manager 中，於 [資料轉換服務] 節點上按一下滑鼠右鍵，按一下 [內容]，再按 [啟用儲存到 Meta Data Services]。

  附註 您必須要以系統管理員的權限來登入，才能修改此屬性。

當 Meta Data Service 中儲存封裝的選項停用時，您可以從 Meta Data Service 載入現有的封裝，對其進行編輯，並使用 [儲存] 選項來將其儲存到 Meta Data Service 中。然而，[另存新檔] 選項無法使用 Meta Data Services。例如，您無法使用不同的名稱，來將封裝重新儲存到 Meta Data Services。

## 5.8 XML 的增強功能

下列主題討論 SP3a 中 XML 及SQLXML 的增強功能。

### 5.8.1 XPath 運算式的改善驗證功能

SP3 引進

在 SP3 之前，與 SQL Server 2000 (MSXML 2.6) 同時安裝的 MSXML 版本，允許 XPath 運算式中的述詞可以跟在特殊的字元縮寫之後，而該縮寫可識別目前的內容節點，在 XPath 語法中以句點 (.) 表示。這就違反了 XPath 語法規格，因其要求這個字元要跟在位置路徑運算式之後。

當您套用 SP3 或以上版本時，在 MDAC 升級的期間便會安裝 MSXML (3.0 SP3) 的以上版本。相關資訊，請參閱 5.5.1 節〈Microsoft Data Access Components 的更新〉。

使用新版的 MSXML，述詞便無法緊跟在目前內容節點縮寫的特殊字元之後。升級到 SP3 或以上版本之後，在 SQLXML 查詢 (針對註解對應結構以及在 XSLT 樣式表 (撰寫來轉換 SQLXML 查詢結果) 中的 XPath 查詢) 中使用錯誤語法的 XPath 運算式將會失敗。

若要避免這類失敗，請識別及修正使用錯誤語法的任何運算式。例如，XPath 運算式語法指定的值若如下列 xsl:if 元素中的 test 屬性一般則無效，因為述詞 [@ResourceTypeID='2'] 緊跟在用來識別目前內容節點的特殊字元縮寫之後。

下列的陳述式在以前並不會產生錯誤，但在安裝 SP3 或以上版本之後便會失敗。

    <xsl:if test=".[@ResourceTypeID='2']">

若要避免失敗，則必須修改 XPath 運算式，如下所示：

    <xsl:if test="@ResourceTypeID='2'">

## 5.9 虛擬備份裝置 API 的增強功能

下列項目可套用至 SQL Server 2000 虛擬備份裝置 API。

### 5.9.1 擷取單一快照中的多重資料庫

SP2 引進

虛擬備份裝置 API 允許 ISV 將 SQL Server 2000 整合到他們的產品中。這個 API 設計的目的是提供最大的可靠性及效能。它可完全支援備份及還原 SQL Server 2000 的功能，包括完整範圍的作用點及快照備份能力。

在 SP1 及更早版本中，無法在同一時間內凍結及備份多個資料庫。而 SP3 或以上版本現在提供了伺服器端的支援，在單一快照中經由 VDC_PrepareToFreeze 命令來凍結及擷取多重資料庫。

SP3a 的虛擬備份裝置規格，包含了 VDC_PrepareTo Freeze 命令的相關更新資訊。也可在 SP3a 設定目錄 \Devtools\Include 中，找到更新版本的虛擬裝置介面標頭檔案 (vdi.h)。

您可以從 Microsoft SQL Server 下載專區的 Microsoft 下載中心，來下載更新的規格。

## 5.10 錯誤報告

SP3 引進

預設會停用 Microsoft SQL Server 錯誤報告。您可透過 SQL Server 安裝程式或 Analysis Service 安裝程式來在安裝期間啟用錯誤報告，或是在安裝之後，透過 Enterprise Manager 中的 [伺服器屬性] 對話方塊或「分析管理員」中的 [伺服器屬性] 對話方塊來啟用。當您執行 SQL Server 安裝程式時啟用錯誤報告，可以報告 SQL Server 資料庫引擎及 SQL Server 代理程式的錯誤。當您執行 Analysis Services 安裝程式時啟用錯誤報告，可以報告 Analysis Services 的錯誤。如果您要啟用 SQL Server 及 Analysis Services 的錯誤報告，您必須分別為 SQL Server 及 Analysis Services 在執行 SQL Server 安裝程式時及執行 Analysis Services 安裝程式時啟用錯誤報告。

如果您啟用此功能，會將 SQL Server 設定為在 SQL Server 資料庫引擎、SQL Server 代理程式中或 SQL Server Analysis Services 中有嚴重錯誤發生時，自動將報告傳送至 Microsoft。Microsoft 使用錯誤報告來改善 SQL Server 功能，並將所有資訊視為機密。

會透過安全 (HTTPS) 連線將錯誤的相關資訊傳送到 Microsoft (以限制存取的方式予以儲存)。另一個方法是將此資訊傳送到您自己的 Corporate Error Reporting 伺服器。請參閱此 Microsoft 網站，以取得設定 Corporate Error Reporting 伺服器的詳細資訊。

錯誤報告包含下列資訊：

- 發生問題時 SQL Server 的狀況。
- 作業系統版本和電腦硬體資訊。
- 您的數位產品識別碼 (可用來識別您的授權)。
- 您電腦的網路 IP 位址。
- 造成錯誤之處理序的記憶體或檔案資訊。

Microsoft 不會刻意地收集您的檔案、姓名、地址、電子郵件地址或任何其他形式的個人資訊。然而，錯誤報告可能包含客戶的特定資訊，而它們來自造成錯誤之處理序的記憶體或檔案。雖然此資訊可能會用來判定您的身分識別，但 Microsoft 並非基於該目的而使用此資訊。

請參閱此 Microsoft 網站，以取得 Microsoft 錯誤報告資料收集原則。

如果您已啟用錯誤報告且發生了嚴重錯誤，您可在指向 Microsoft Knowledge Base 文章的「Windows 事件日誌」中看到 Microsoft 對於特定錯誤的相關回應。回應的外觀可能與下列範例類似：

    Source = MSSQLServerOlapServicesDW
    EventID = 1010
    data = http://support.microsoft.com/support/misc/kblookup.asp?id=Q123456
    &iBucketTable=1&iBucket=39980&Cab=21474432.cab&LCID=1033
    &OS=5.1.2600.2.00010100.0.0

若要停用 SQL Server 資料庫引擎及 SQL Server 代理程式的錯誤報告，請移至 Enterprise Manager 中的 [SQL Server 屬性] ([一般] 頁籤)，並清除 [啟用錯誤報告] 核取方塊。若要停用 Analysis Services 的錯誤報告，請前往 [分析管理員] 中的 [伺服器屬性]，並清除 [啟用錯誤報告] 核取方塊。如果 SQL Server (資料庫引擎及 SQL Server 代理程式) 和 Analysis Services 都已經啟用錯誤報告，則您必須個別地為 SQL Server 及 Analysis Services 停用錯誤報告。

## 5.11 English Query 的增強功能

SP1 引進

Microsoft 已釋出一項 English Query 應用程式的安全性增強功能。不會將這項增強功能安裝為 Service Pack 的一部份。不過，如果您要使用 English Query，則建議您套用這項增強功能。該安全性增強功能位於 SP3a 光碟上的 \EQHotfix 資料夾中。English Query 增強功能的詳細資料可以在 Microsoft Product Support Services Knowledge Base 取得。請搜尋 Knowledge Base 文章 297105。

## 5.12 資料程式庫及 Embedded SQL for C

SP1 引進

雖然 SQL Server 2000 仍支援資料程式庫及 Embedded SQL for C API，但未來的 SQL Server 版本將不會包括使用這些 API 來在應用程式上撰寫程式時所需的檔案。使用資料程式庫及 Embedded SQL for C 撰寫之現有應用程式的連線，仍會在下一版 SQL Server 中受到支援，但未來版本中也將會卸除此項支援。撰寫新的應用程式時，請避免使用這些元件。修改現有應用程式時，強烈建議您不要再依賴這些技術。除了資料程式庫或 Embedded SQL for C 之外，您還可以使用 ADO、OLE DB 或 ODBC 來存取 SQL Server 中的資料。若需這些技術的相關資訊，請參閱《SQL Server 線上叢書》。