# Service Pack 4 for Microsoft SQL Server 2000

# Desktop Engine (MSDE 2000)

##### 2005 年 3 月 29 日

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

SQL Server 文件編製小組雖然無法答覆關於技術支援的問題，但仍歡迎您對於這份讀我檔案文件提出相關的建議與批評。您可以使用下列的連結，透過電子郵件的方式迅速且直接的傳送您的意見。您所送出的意見反應請使用英文。
若要撰寫並送出您對此文件的意見，請按一下這裡： 送出意見反應。

# 內容

1.0 簡介

1.1 系統需求

1.2 升級至 MSDE 2000 SP4 前

1.3 MSDE 2000 SP4 的安全性注意事項

1.4 決定執行個體名稱

1.5 確認 Microsoft Data Access Components 的版本

1.6 識別 MSDE 2000 目前的版本

1.7 其他關於 SP4 的資訊

1.8 SQL Server 2000 線上叢書已更新

2.0 哪裡可以找到及下載 MSDE 2000 SP4

2.1 選擇正確的語言

2.2 下載 MSDE 2000 SP4

2.3 解壓縮 MSDE 2000 SP4 檔案

2.4 下載及解壓縮階段性指導方針

3.0 安裝 Service Pack

3.1 準備安裝 MSDE 2000 SP4

3.2 執行 MSDE 2000 SP4 安裝程式

3.3 重新啟動服務及應用程式

3.4 在複寫的伺服器上安裝 MSDE 2000

3.5 將 MSDE 2000 SP4 套用至複寫拓撲中的唯讀資料庫或檔案群組

3.6 升級連結伺服器的目錄

3.7 解除安裝 MSDE 2000 SP4

3.8 重新套用 MSDE 2000 SP4

4.0 其他安裝考量事項

4.1 重新散佈 MSDE 2000 SP4

4.2 MSDE 2000 SP4 檔案位置

5.0 文件注意事項

5.1 MSDE 2000 增強功能

5.2 複寫增強功能

5.3 SQL Server 代理程式及共用工具增強功能

5.4 XML 增強功能

5.5 資料程式庫 (DB-Library) 與 Embedded SQL for C

5.6 MSDE 2000 安裝程式增強功能

5.7 服務性增強功能

[回到頁首]

# 1.0 簡介

此讀我檔案將說明如何使用 Microsoft® SQL Server™ 2000 Service Pack 4 (SP4) 的 SQL Server Desktop Engine (MSDE) 部分。您可以使用 Desktop Engine SP4，將 MSDE 現有的執行個體升級為 MSDE 2000 SP4，也可以安裝新的 MSDE 2000 SP4 執行個體。

安裝 SQL Server SP4 的一般程序如下：

1. 先確定您是否可使用 SP4；若是可以的話，需要安裝哪一 (些) 部分的 SP4。下載及安裝 SP4 前，請先確實讀完此讀我檔案的 1.0 小節。
2. 下載並解壓縮 Service Pack 安裝檔案。2.0 小節說明取得 SP4 安裝檔案的方法。
3. 準備升級至 SP4 的執行個體。3.0 小節以及 3.1 至 3.3 小節詳細說明了安裝 SP4 前應採取的準備步驟。
4. 安裝 SP4。3.2 小節詳細說明執行 SP4 安裝程式所使用的選項。

注意 此讀我檔案中所指稱的 SQL Server 2000 Desktop Engine，皆是指 MSDE 2000 Release A (除非另有指定)。MSDE 2000 Release A 下載檔案在功能上與 SQL Server 2000 Desktop Engine SP3a 相同，但另外還含有一份新的使用者授權合約 (EULA)，可賦予有別於舊版 MSDE 2000 授權中的使用者權限。

SQL Server 2000 SP4 有四個部分。各個部分可分別用來將 SP4 套用至不同的 SQL Server 元件上：

- MSDE 2000 SP4 更新了 SQL Server 2000 MSDE 2000 與 MSDE 2000 Release A 的執行個體。由 MSDE 2000 SP4 升級的元件包括：
  - MSDE 2000 資料庫引擎。
  - 隨附於 MSDE 2000 的資料庫命令提示字元公用程式，如 osql 與 bcp 公用程式。
  - 資料庫用戶端連接元件，例如：Microsoft OLE DB Provider for SQL Server 2000、SQL Server 2000 ODBC 驅動程式，以及用戶端網路程式庫。
  - MSDE 2000 所包含的複寫與資料轉換服務 (DTS)。
- Database Components SP4 針對 SQL Server 2000 Enterprise Edition、Standard Edition、Developer Edition、Enterprise Evaluation Edition 或 Personal Edition 更新了資料庫引擎的執行個體。
- Analysis Services SP4 更新 SQL Server 2000 安裝中 SQL Server 2000 Analysis Services 的許多部分。
- SQL Server 2000 SP4 (64 位元) 包含 SQL Server 2000 (64 位元) 的所有更新。這是 SQL Server 2000 (64 位元) 的第一版 Service Pack。

所有的 SQL Server Service Pack 都是累計式的套件。SQL Server SP4 包含 SP1、SP2、SP3 和 SP3a 中隨附的修正檔。

MSDE 2000 SP4 僅適用於 SQL Server 2000 Desktop Engine 或 MSDE 2000 Release A 的執行個體。SQL Server 2000 SP4 的其餘部分可將 SP4 套用於其他 SQL Server 2000 元件上，如 Analysis Services 或資料庫引擎。Database Components SP4 與 Analysis Services SP4 的使用方式說明於個別的讀我檔案中。其他讀我檔案可於 Microsoft 網站 (英文) 取得。

[回到頁首]

##### 使用 MSDE 2000 SP4

MSDE 2000 的 Service Pack 適用於建立可重新散發之 MSDE 相關應用程式的開發人員。MSDE 2000 SP4 可用來執行下列作業：

- 若現有的 2000 MSDE 2000 或 MSDE 2000 Release A 執行個體當初是使用 MSDE 2000 安裝程式進行安裝，您可以將此執行個體升級至 MSDE 2000 SP4。
- 若您具有 MSDE 2000 授權可安裝 MSDE 2000 執行個體，您可以安裝新的 MSDE 2000 SP4 執行個體。
- 若您具有 MSDE 2000 授權可執行 MSDE 2000 執行個體，您可以將 MSDE 1.0 執行個體升級至 MSDE 2000。
- 為開發人員提供撰寫應用程式安裝程式所需的檔案，讓應用程式能夠在安裝過程中安裝 MSDE 2000 SP4 的執行個體。開發人員必須具備以應用程式散發 MSDE 的授權。
- 為開發人員提供必要的檔案，讓他們建立修補程式模組，並散發給透過應用程式使用 MSDE 2000 合併模組而安裝了 MSDE 2000 執行個體的客戶。

如需 MSDE 2000 授權的詳細資訊，請參閱使用 MSDE 2000 (英文)。 若您尚未具備安裝或執行 MSDE 2000 的授權，您可以在 MSDE 2000 Release A 網頁 (英文) 上註冊以取得授權。

[回到頁首]

##### 開始安裝 MSDE 2000 SP4 前

若要安裝 MSDE 2000 SP4，請檢視此讀我檔案中第 1 與第 2 節中的內容，若有下列情況，亦請遵循第 3 節中的指示：

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

[回到頁首]

##### 升級與安裝的常見情況

此讀我檔案中的以下幾節包含了將現有 MSDE 執行個體升級至 MSDE 2000 SP4，或安裝新的 MSDE 2000 執行個體時之常見情況的範例：

- 3.2.2 將現有的 MSDE 2000 執行個體升級至 MSDE2000 SP4
- 3.2.3 安裝新的 MSDE 2000 SP4 執行個體
- 3.2.4 將 MSDE 1.0 升級至 MSDE 2000 SP4

[回到頁首]

## 1.1 系統需求

嘗試執行 MSDE 2000 SP4 安裝程式前，您的電腦必須符合下列軟硬體需求。

##### 硬體需求

下表說明安裝及執行 MSDE 2000 時的硬體需求。

硬體 | 最低需求
電腦 | Intel Pentium 或相容，至少 166 MHz
記憶體 (RAM) | Microsoft Windows XP 與 Windows 2003 Server 需要 128 MB Windows 2000 至少需要 64 MB
硬碟空間 | Microsoft Windows XP 與 Windows 2003 Server 需要 75 MB Windows 2000 需要 100 MB
磁碟機 | 光碟機 (用於從光碟片安裝 MSDE 2000 SP4)

MSDE 2000 沒有硬體相容性清單 (HCL)。若您的電腦符合上表所列的最低需求，MSDE 2000 軟體即可在經過認證可與 Windows 作業系統搭配使用的硬體上運作。對於經過認證可與 Windows 作業系統搭配使用的硬體，如需相關資訊，請參閱此 Microsoft 網站 (英文) 中的 Windows 硬體相容性清單。

[回到頁首]

##### 作業系統需求

若要使用 MSDE 2000，您必須先安裝下列其中一種作業系統：

- Windows Server 2003 Standard Edition、Windows Server 2003 Enterprise Edition、Windows Server 2003 Datacenter Edition、Windows Server 2003 Web Edition。
- Windows 2000 Server、Windows 2000 Advanced Server、Windows 2000 Datacenter Server。
- Windows XP Professional、Windows XP Home Edition。
- Windows 2000 Professional。

重要事項 SQL Server 2000 SP4 在 Windows NT 4.0、Windows Millennium Edition 與 Windows 98 平台上不受支援。在最新的 SQL Server 2000 SP4 發行後的 12 個月內，Windows NT 4.0、Windows Millennium Edition 與 Windows 98 平台上的 SQL Server 2000 SP3a 安裝仍可繼續保有重大 Hotfix 的支援。

[回到頁首]

##### 軟體與系統需求

若要執行 MSDE 2000 安裝程式，檔案與列印共用必須處於作用中。

驗證檔案與列印共用是否處於作用中

1. 在 [控制台] 中連按兩下 [網路連線]。
2. 在 [進階] 功能表上，按一下 [進階設定]。
3. 在 [介面卡及連結] 索引標籤上，確認已選取 [File and Print Sharing for Microsoft Networks]。

若下列其中一項安全性原則設為 [不允許安裝]，MSDE 2000 SP4 安裝即會失敗：

- Windows XP 的 [裝置：未簽署的驅動程式安裝操作] 本機安全性原則。
- Windows 2000 的 [未簽署的非驅動程式安裝操作] 本機安全性原則。

若您使用 [不允許安裝] 設定，則必須在安裝 MSDE 2000 SP4 前將其變更為 [無訊息式成功]。若有需要，您可以在安裝完成後將該原則還原為先前的設定。

注意 [不允許安裝] 並非這些安全性原則的預設設定。

設定安全性原則

1. 在 [控制台] 中連按兩下 [系統管理工具]。
2. 連按兩下 [本機安全性原則]。
3. 展開 [本機原則]。
4. 選取 [安全性選項]。
5. 安裝 MSDE 2000 SP4 前，請確定下列位於右窗格中的選項已設定為 [無訊息式成功]：
   - 在 Windows XP 與 Windows 2003 上：[裝置：未簽署的驅動程式安裝操作]。
   - 在 Windows 2000 上：[未簽署的非驅動程式安裝操作]。

只有使用 Microsoft Windows Installer 2.0.2600.0 或更新版本時，才可從光碟片安裝 MSDE 2000 SP4 的升級檔案。若您需要升級 Windows Installer，MSDE 2000 SP4 中含有您所需的檔案。

升級 Windows Installer

1. 在 [檔案總管] 中瀏覽至 \MSDE\MSI 資料夾，此資料夾位於 SQL Server 2000 SP4 CD 上，或是位於您從自動解壓縮的 Service Pack 4 下載檔案 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe 中解壓縮的資料夾上，其中 LLL 隨語言而有所不同。
2. 執行 InstMsi20.exe。
3. 在出現提示時，請重新啟動電腦。

[回到頁首]

##### 應用程式需求

若有應用程式正在使用 MSDE 執行個體，請在升級至 MSDE 2000 SP4 前，先詢問應用程式提供者該應用程式是否有任何適用的 MSDE 升級注意事項。

[回到頁首]

## 1.2 升級至 MSDE 2000 SP4 前

本節說明在您使用 MSDE 2000 SP4 將現有的 MSDE 執行個體升級為 MSDE 2000 SP4 前，必須先處理哪些問題並執行哪些工作。

在 Database Components SP4 的執行個體上建立的資料庫或資料庫備份，可以附加或還原到舊版的 SQL Server 2000 上。但複寫拓撲中的資料庫則有所限制。如需詳細資訊，請參閱 1.2.3 小節複寫或記錄傳送拓撲中關於執行個體的注意事項。

[回到頁首]

### 1.2.1 判斷是否能將 MSDE 2000 SP4 套用至現有的 MSDE 2000 執行個體

將 MSDE 2000 SP4 套用至現有 MSDE 2000 執行個體的程序，會隨著執行個體的安裝方式而有所不同。大部分的應用程式會以下列其中一種方式安裝 MSDE 2000：

- 執行 MSDE 2000 安裝程式。以這種方式安裝的 MSDE 2000 執行個體，可以使用 MSDE 2000 SP4 檔案升級至 SP4。MSDE 2000 安裝公用程式可從命令提示字元中執行，或由應用程式中的安裝公用程式加以呼叫。
- 直接採用 MSDE 2000 合併模組。當應用程式的安裝公用程式使用 Windows Installer 技術時，即可嘗試使用這種安裝方式。以這種方式安裝的 MSDE 2000 執行個體，無法使用 MSDE 2000 SP4 檔案進行升級。若要升級，您必須要求應用程式廠商提供修補程式檔案。MSDE 2000 SP4 針對使用合併模組的現有應用程式提供了支援的合併模組。

  注意 新應用程式的安裝公用程式必須撰寫為呼叫 MSDE 2000 安裝程式公用程式，而非撰寫為直接採用 MSDE 2000 合併模組。MSDE 2000 SP4 含有合併模組。然而，只有在應用程式廠商必須針對他們最初透過直接採用合併模組的公用程式所安裝的 MSDE 執行個體，建置修補程式檔案時，才可使用這些合併模組。

若一部電腦上有多個 MSDE 2000 執行個體，您必須個別評估每個執行個體，來判斷是否可套用 MSDE 2000 SP4。您還必須個別對每個執行個體套用 SP4。

注意 Microsoft 不支援同一部電腦上含有超過 16 個 SQL Server 資料庫引擎執行個體的設定。其中包括 SQL Server 6.5、SQL Server 7.0、SQL Server 2000、MSDE 1.0 與 MSDE 2000 的執行個體。

微軟知識庫文章 311762 (英文) 所包含的相關指示可用來判斷 MSDE 2000 執行個體的安裝方式。遵循文章 311762 中的程序之餘，請牢記下列重點：

- 若資訊指出執行個體當初是以 MSDE 2000 安裝程式檔案 SqlRun01.msi 至 SqlRun16.msi 進行安裝，您可以使用 SQL Server 2000 SP4 下載檔案來升級 MSDE 2000 執行個體。
- 若資訊指出當初是由 Microsoft 應用程式安裝執行個體，請參閱此 Microsoft 網站 (英文) 中的指示，以升級該 MSDE 2000 執行個體。
- 知識庫文章 311762 會引導您讀取登錄機碼中的 [ProductCode] 欄位值，並尋找已知值表格中的值。若您的登錄機碼中的值並未列於文章 311762 中，即表示執行個體是由應用程式的安裝公用程式所安裝。您無法使用 SQL Server 2000 SP4 的下載檔案將 SP4 套用至這一類的 MSDE 執行個體。您必須從撰寫此應用程式的公司取得修補程式檔案。若應用程式來自於 Microsoft 以外的公司，您必須要求該公司提供修補程式檔案。若應用程式來自於 Microsoft，請參閱下頁所列之 Microsoft MSDE 應用程式 (此網頁含有如何升級這些 MSDE 2000 執行個體的最新相關資訊)：Microsoft MSDE 應用程式網頁
- 若文章 311762 指出 [ProductCode] 值的原始套件名稱為 Sample.msi 或 SampleUpg.msi，請參閱知識庫文章 314131 (英文)，以取得如何為此 MSDE 2000 執行個體建置修補程式的相關指示。

[回到頁首]

### 1.2.2 判斷是否需要原始 MSDE 2000 安裝檔案

您可以從硬碟、網路共用或光碟片執行 MSDE 2000 SP4 安裝程式。若您從硬碟執行安裝程式，則不需要原始的 MSDE 2000 安裝檔案。但若您要從網路共用或 CD 將 MSDE 2000 執行個體升級至 MSDE 2000 SP4，則當初用來安裝 MSDE 2000 的檔案，必須位於原始安裝期間所在的相同位置上。若原始安裝是從 CD 執行，則 MSDE 2000 SP4 安裝程式會在進行升級時要求原始 CD。若原始檔案已不在網路共用的原始位置上，或原始光碟片已無法使用，您必須將 MSDE 2000 SP4 檔案複製到硬碟上，並於此處執行安裝程式。

[回到頁首]

### 1.2.3 複寫或記錄傳送拓撲中關於執行個體的注意事項

MSDE 2000 SP4 安裝程式會將屬於複寫拓撲成員的使用者資料庫升級。這項升級可能會影響到複寫的使用者資料庫的備份及還原功能。在您安裝 MSDE 2000 SP4 前，請確定您可以寫入複寫資料庫與檔案群組。

如需將 SP4 套用至複寫拓撲所含之資料庫的詳細資訊，請參閱 3.4 小節在複寫的伺服器上安裝 MSDE 2000。有關複寫的其他備份與還原注意事項詳細說明於 5.2.4 小節合併式複寫的備份及還原問題。

注意 若 MSDE 2000 執行個體不屬於應用程式拓撲，您可以備份使用者資料庫，並將其還原在任何其他版本的 SQL Server 2000 或 MSDE 2000 上。

如果安裝程式偵測到任何不可寫入的使用者資料庫或檔案群組，則會執行下列動作：

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

      Setup has detected one or more databases and filegroups which are not writable.

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

如需使資料庫成為可寫入的相關資訊，請參閱 3.5 小節將 MSDE 2000 SP4 套用至複寫拓撲中的唯讀資料庫或檔案群組。 如需有關重新套用 SP4 的詳細資訊，請參閱 3.8 小節重新套用 MSDE 2000 SP4。

[回到頁首]

### 1.2.4 判斷如何移除 MSDE 2000 SP4

在您使用 MSDE 2000 SP4 升級現有的 MSDE 執行個體前，建議您先規劃如何在必要時將執行個體回復為原有的狀態，以因應後續可能發生的狀況。安裝 MSDE 2000 SP4 時，基於維護因素，SP4 會變更系統資料表。也會升級身為複寫拓撲成員的使用者及散發資料庫。由於這些變更的性質所致，因此無法輕易移除 MSDE 2000 SP4。若要還原至您在 MSDE 2000 SP4 安裝前所執行的建置版本，必須先解除安裝 MSDE 2000 的執行個體，再予以重新安裝。接著，若您先前執行 SQL Server 2000 Service Pack 或套用任何 Hotfix，您必須對要還原的執行個體重新套用該 Service Pack 與 Hotfix。

重要事項 若要將系統安全地還原至安裝 MSDE 2000 SP4 前的狀態，您必須在安裝 MSDE 2000 SP4 前，先進行 master、model 與 msdb 資料庫的備份。如需相關資訊，請參閱 3.1.1 小節備份 SQL Server 資料庫。

如需相關資訊，請參閱 3.7 小節解除安裝 MSDE 2000 SP4。

[回到頁首]

## 1.3 MSDE 2000 SP4 的安全性注意事項

MSDE 2000 安裝程式的行為已於 SP3a 變更，因此其預設值可進行更安全的設定。這些變更也沿用到 SP4 中，如下所示：

- 網路支援預設為停用

  根據預設，當安裝新的 MSDE 2000 執行個體時，SP4 會停用網路支援。現有的執行個體升級時，會保有其網路支援設定。若沒有其他電腦上的應用程式連線至您的 MSDE 2000 執行個體，執行個體即不需要網路支援。關閉非使用中的資源是審慎的做法。若您將 DISABLENETWORKPROTOCOLS 安裝參數值指定為 0，即可在安裝期間啟用網路支援。若您在安裝 MSDE 2000 SP4 的執行個體時啟用網路支援，您可於稍後重新設定執行個體以停用支援。有關如何停用及還原網路存取的詳細資訊，請參閱微軟知識庫文章 814130。

- 安裝程式需要增強式 SA 密碼

  您必須指定增強式 SA 密碼，MSDE 2000 SP4 安裝程式才會安裝新的 MSDE 2000 執行個體。使用 SAPWD 參數可指定增強式 SA 密碼。您必須為 SA 登入指派強式密碼，MSDE 2000 SP4 安裝程式才會升級現有的 MSDE 2000 執行個體。即使在您升級現有的執行個體時，仍必須為 SA 登入指派強式密碼，除非使用 MSDE 執行個體的應用程式以某種方式依存於 Null SA 密碼。即使 MSDE 2000 的執行個體使用 Windows 驗證，SA 登入仍會在執行個體切換為「混合模式驗證」時立即變成作用中狀態。Null、空白、簡易或常見的 SA 密碼，很容易受到未經授權之存取的使用。若您必須在將 MSDE 2000 執行個體升級為 MSDE 2000 SP4 前指派增強式 SA 密碼，請參閱微軟知識庫文章 322336。

- Windows 驗證

  為提高安全性，請儘可能在安裝 MSDE 2000 時使用 Windows 驗證。若以下兩個情況皆屬實，請考慮將「混合模式驗證」切換為 Windows 驗證：

  - 在選取 [Windows 驗證] 選項的情況下，使用 MSDE 2000 的應用程式可執行。
  - 您已為所有需要連線至執行個體的使用者定義 Windows 驗證登入。有關如何新增登入的詳細資訊，請參閱《SQL Server 2000 線上叢書》中的＜新增 Windows 使用者或群組＞。

  有關將 MSDE 2000 的執行個體從「混合模式驗證」變更為 Windows 驗證的詳細資訊，請參閱微軟知識庫文章 322336。

[回到頁首]

## 1.4 決定執行個體名稱

若要在一部電腦上安裝 MSDE 2000 與 SQL Server 2000 資料庫引擎的多個複本或執行個體，您必須知道執行個體的名稱。一部電腦上最多可有 16 個執行個體。其中一個執行個體沒有執行個體名稱，稱為預設執行個體。其他 15 個執行個體必須具備唯一的執行個體名稱，稱為具名執行個體。

您可以使用 MSDE SP4 安裝程式來安裝或升級 MSDE 的執行個體。若要安裝或升級 MSDE 的具名執行個體，您必須使用 INSTANCENAME 參數來指定執行個體名稱。若未指定 INSTANCENAME，安裝程式會以該部電腦的預設 MSDE 執行個體運作。您無法使用 MSDE 2000 SP4 來升級 SQL Server 2000 資料庫引擎的執行個體。

若要尋找電腦上現有的執行個體，請執行下列操作：

1. 在 [檔案總管] 的 [我的電腦] 上按一下滑鼠右鍵，然後按 [管理]。
2. 展開 [服務及應用程式]。
3. 按一下 [服務]。

右側清單窗格中會出現名為 MSSQLSERVER 之服務的預設執行個體。具名執行個體則會列示為 MSSQL$InstanceName 服務，其中 InstanceName 是執行個體的名稱。

執行個體名稱必須遵循此 Microsoft 網頁中的規則。

[回到頁首]

## 1.5 確認 Microsoft Data Access Components 的版本

MSDE 2000 SP4 安裝程式可判斷是否要將已安裝的 Microsoft Data Access Components (MDAC) 版本升級至 MDAC 2.8 SP1：

- 執行 Windows 2000 的電腦會升級至 MDAC 2.8 SP1。
- 執行 Windows XP 或 Windows Server 2003 的電腦則不會升級至 MDAC 2.8 SP1。若您的系統需要 MDAC 2.8 SP1 所含的任何修正檔，請將系統升級至 Windows XP SP2 或 Windows Server 2003 SP1 以取得 MDAC 2.8 SP2。
- MDAC 2.8 SP1 不會安裝在原本已安裝有相同或更新版本 MDAC 的電腦上。

  注意 若將安裝了 MSDE 2000 SP4 的電腦升級至較新的作業系統平台，則由 SP4 所安裝的 MDAC 版本將不復存在。

注意 請參閱知識庫文章 301202，以取得判斷您電腦上之 MDAC 版本的指示。

MSDE 2000 SP4 安裝 MDAC 2.8 SP1 時，MDAC 會使用與 MSDE 2000 SP4 相同的語言版本。若要讓 MDAC 保有與 MSDE 2000 SP4 不同的語言版本，您必須在執行 MSDE 2000 SP4 安裝程式前下載及安裝您要使用的 MDAC 2.8 SP1 語言版本。您可以由 Microsoft Data Access 下載網頁 (英文) 下載特定語言的 MDAC 2.8 SP1 版本。

MDAC 2.8 SP1 包含可升級到 MSXML 3.0 SP7 的程式。MDAC 2.81 也會升級 Microsoft SQL Server 2000 所隨附的 SQLXML 1.0。此 Service Pack 不會安裝或升級 SQLXML 3.0。若您的應用程式需要 SQLXML 3.0，您必須由此 Microsoft 網站 (英文) 下載並安裝。如需 MDAC 2.8 SP1 的詳細資訊，請參閱 Microsoft 資料存取下載網頁 (英文)。 如需 MDAC 的相關資訊，請參閱知識庫文章 822758 (英文)。MDAC 2.8 SP1 中所隨附的修正檔記載於知識庫文章 884930 (英文)。

所有可與 MSDE 2000 搭配使用的 Windows 版本，都包含可使用 MSDE 2000 SP4 的 MDAC 軟體。若您將 MSDE 2000 的執行個體設定為支援網路通訊，並設定當作資料庫伺服器運作，則不需在任何 Windows 電腦上安裝用戶端軟體以啟用相關的應用程式使該電腦連線至 MSDE 2000 執行個體。如需網路通訊的詳細資訊，請參閱此 Microsoft 網頁 (英文)。

注意 SQL Server 2000 SP4 的試用版安裝了 MSXML 3.0 SP7 的試用版。若您安裝了 SQL Server 2000 SP4 的試用版，建議您從 Microsoft 網站 (英文) 下載並安裝 MSXML 3.0 SP7 的最新版本。

[回到頁首]

## 1.6 識別 MSDE 2000 目前的版本

執行安裝程式前，請識別要升級之 MSDE 2000 執行個體的版本。若 MSDE 2000 的版本已為 SP4 或更新版本，您就不需再安裝 SP4。

若要識別已安裝的 MSDE 2000 版本，請執行下列操作：

1. 使用 isql、osql 或 Query Analyzer，對資料庫引擎的執行個體執行下列其中一項查詢。
   - `SELECT SERVERPROPERTY('ProductLevel')`
   - `SELECT @@VERSION`
   - `SELECT SERVERPROPERTY('ProductVersion')`
2. 透過下表找出您 MSDE 的版本。

   SQL Server 2000 版本和層級 | @@VERSION | 產品層級
   SQL Server 2000 原始版本 | 8.00.194 | RTM
   Desktop Engine SP1 | 8.00.384 | SP1
   Desktop Engine SP2 | 8.00.534 | SP2
   Desktop Engine SP3、SP3a 或 MSDE 2000 Release A。 | 8.00.760 | SP3
   MSDE 2000 SP4 | 8.00.2039 | SP4

   注意 如果您在安裝產品或安裝舊版的 Service Pack 後套用了 Hotfix，則您的產品版本可能會與這些值有所不同。例如：`@@VERSION` 會在您將安全性修正檔 MS03-031 套用至 MSDE 2000 Release A 後，傳回 8.00.818 值。

3. (選擇性) 若您不確定您所安裝的是 SQL Server 2000 資料庫引擎還是 MSDE 2000，請使用 isql、osql 或 Query Analyzer 對未知的執行個體執行下列查詢。

   `SELECT SERVERPROPERTY('Edition')`

   當傳回 Desktop Engine 值時，表示執行個體為 MSDE 2000。

[回到頁首]

## 1.7 有關 SP4 的其他重要資訊

此 Service Pack 中所含的修正檔清單將在微軟知識庫文章 888799 (英文) 中提供。888799 (英文) 中所列的每個修正檔，都有連結可連接至相關的知識庫文章以說明特定修正檔所解決的問題。請遵循各個知識庫文章的連結以查看每個修正檔的相關資訊。

任何與 SQL Server 2000 Service Pack 4 相關但未能即時涵蓋於此讀我檔案中的資訊將在微軟知識庫文章 884525 (英文) 中發行。

此讀我檔案所引用的知識庫文章皆位於微軟知識庫中。

尋找知識庫中的文章

1. 在 [進階搜尋] 下的 [搜尋] 文字方塊中，鍵入您需要的文章編號。
2. 從 [搜尋類型] 下拉式清單中，選取 [文章編號]。
3. 按一下 [執行搜尋] 的向右箭號按鈕。

##### Hotfix

所有公開發行的 SQL Server 2000 SP3a 與 SQL Server 2000 (64 位元) 安全性公告均已於 SP4 中說明。

如果您是在 2004 年 12 月 2 日之後收到 SQL Server 2000 Hotfix，則該 Hotfix 可能不會涵蓋在 SP4 中。請聯絡您的主要支援提供者，瞭解如何為 SQL Server 2000 SP4 取得相同的 Hotfix。

SQL Server 2000 SP4 包含了服務性增強功能，讓您可以將日後的 Hotfix 解除安裝。如需詳細資訊，請參閱 5.7 小節服務性增強功能。

##### 與 Slammer 蠕蟲相關的修正檔

SQL Server 2000 SP4 納入的 MSDE 2000 變更可解決 Slammer 蠕蟲所引發的問題：

- SP4 可解決某些用戶在使用 SQL Server 2000 SP3 中的 Microsoft Data Access (MDAC) 元件版本時所遇到的安裝問題。
- 當 MSDE 2000 SP4 或 SP3a 的執行個體設定為不支援網路連線時，執行個體也會停止使用 UDP 連接埠 1434。

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

已升級或計劃將 SQL Server 2000 資料庫和發行者伺服器升級至 SP4 的 Microsoft SQL Server 2000 Windows® CE Edition (SQL Server CE) 與 SQL Server 2005 Mobile Edition (SQL Mobile) 使用者，也應該升級 Microsoft Internet Information Services (IIS) 伺服器上的伺服器複寫元件。SQL Server CE 和 SQL Mobile 的更新伺服器工具安裝程式已發行。

注意 即使您升級至 SQL Server 2000 SP3 或 SP3a 後曾更新您的伺服器複寫元件，您仍須將與 SP4 相關的最新更新安裝至伺服器工具元件。

##### OPENXML 更新

SQL Server 2000 SP4 消除了對由作業系統所安裝之 MSXML 版本執行 OPENXML 的需要。MSDE 2000 SP4 會安裝內部版本的 MSXML 技術，此版本對 MSXML 2.6 具有回溯相容性。

[回到頁首]

## 1.8 SQL Server 2000 線上叢書的更新已發行

《SQL Server 2000 線上叢書》是 MSDE 2000 的主要使用者文件。線上叢書會定期以修正檔與新資訊進行更新。2004 年 1 月，線上叢書進行更新並納入了更多有關 MSDE 2000 的資訊。強烈建議您下載並安裝最新版的線上叢書，原因如下：

- MSDE 2000 安裝程式文件已更新，以反映 SQL Server 2000 SP3 與 SP3a 中所納入的變更。此安裝文件也適用於 SP4 版本的 MSDE 2000 安裝程式，但不含 SP4 中所採用的 SAVESYSDB 參數。如需相關資訊，請參閱 5.6.1 小節新的 MSDE 2000 安裝程式 SAVESYSDB 參數。
- 說明 osql 公用程式的用法。此文章主要適用於新的 MSDE 2000 用戶。
- 在新的章節中，將說明《SQL Server 2000 線上叢書》適用於 MSDE 2000 的部分。
- 有關 MSDE 2000 工作量支配者的說明已有所更新。
- MSDE 2000 的特定主題透過索引編排，與 MSDE 2000 一起呈現。這些主題也都含有 MSDE 2000 字串，因此能在使用者搜尋 MSDE 2000 文章時出現。

最新版的線上叢書位於下列位置中：

- 最新版的線上叢書是一系列可下載的檔案集，位於此線上叢書下載網站 (英文) 中。
- MSDN Library 中也有最新版本的線上叢書。線上叢書最新版本的英文版可於此網站 (英文) 取得。

[回到頁首]

##### 更新的 SQL Server 2000 範例已發行

此 Microsoft 網站中有針對 SP3 與 SP3a 更新的 SQL Server 2000 資料庫引擎可供使用。所有參考 MSDE 2000 所含之 SQL Server 2000 元件的範例，也都適用於 MSDE 2000，但 MSDE 2000 不支援的功能除外。包含在內的功能有資料庫引擎、資料庫用戶端連接元件與程式設計 API、複寫，以及資料轉換服務 (DTS) 等。

[回到頁首]

# 2.0 哪裡可以找到及下載 SQL Server 2000 SP4

在您準備下載及解壓縮 SQL Server 2000 SP4 前，請閱讀本節稍後的＜下載及解壓縮階段性指導方針＞。SQL Server 2000 SP4 以下列方式散發：

- SQL Server 2000 Service Pack 4 光碟片，其中包含下列元件之 Service Pack：
  - MSDE 2000 SP4
  - Database Components SP4
  - Analysis Services SP4
  - SQL Server 2000 SP4 (64 位元)

  若您有 SQL Server 2000 SP4 CD，可以從 CD 使用自動解壓縮檔案 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe，將 MSDE 2000 的執行個體升級為 MSDE 2000 SP4。

- 四個自動解壓縮的安裝套件檔案，可從網際網路上的 Microsoft 網站 (英文) 下載：
  - SQL2000.MSDE-KB884525-SP4-x86-LLL.exe (Desktop Engine (MSDE 2000) SP4)
  - SQL2000-KB884525-SP4-x86-LLL.exe (Database Components SP4)
  - SQL2000.AS-KB884525-SP4-x86-LLL.exe (Analysis Services SP4)
  - SQL2000-KB884525-SP4-ia64-LLL.exe (SQL Server 2000 SP4 (64 位元))

  注意 LLL 代表隨不同語言而改變的指示項。

當您從下載網站或 SP4 CD 取得 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe 後，即可加以執行，將 MSDE 2000 SP4 檔案解壓縮至您的電腦上。SQL2000.MSDE-KB884525-SP4-x86-LLL.exe 會在您的硬碟上建立一組資料夾與檔案，以供您安裝 MSDE 2000 SP4 之用。

[回到頁首]

## 2.1 選擇正確的語言

SQL Server 2000 Desktop Engine 的 Service Pack 有不同的語言版本。升級 MSDE 2000 的執行個體時，您必須根據您的執行個體取得使用相同語言的 Service Pack。使用 SQL Server 2000 SP4 CD 或下載 MSDE 2000 SP4 檔案，皆可取得 Service Pack。例如，若您要升級使用日文的 MSDE 2000 執行個體，則必須取得日文版的 MSDE 2000 SP4。

注意 MSDE 2000 SP4 是唯一提供葡萄牙文 (巴西)、瑞典文及荷蘭文的 Service Pack，因為 SQL Server 2000 Desktop Engine 是 SQL Server 2000 針對這些語言所生產的唯一元件。由 Database Components SP4 或 Analysis Services SP4 升級的 SQL Server 2000 元件不提供這些語言的版本。

若您不確定 MSDE 2000 執行個體所使用的語言，請：

- 按一下 [開始]，再按 [執行]。
- 在 [開啟] 方塊中鍵入 Regedit，然後按一下 [確定]。
- 找出並選取下列機碼：
  - 針對 MSDE 2000 的預設執行個體，請尋找並選取此子機碼：

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion

  - 針對 MSDE 2000 的具名執行個體，請尋找並選取此子機碼：

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

    其中 InstanceName 是執行個體的名稱。

- 在右邊清單窗格中，讀取 Language 項目的值。比較此值與下表中的值，以決定您的 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 | 瑞典文
  0x00000804 | 2052 | 簡體中文

[回到頁首]

## 2.2 下載 MSDE 2000 SP4

若您的 MSDE 2000 執行個體是使用 MSDE 安裝公用程式進行安裝，您可以使用 SQL Server 2000 SP4 下載檔案來升級 MSDE 2000 執行個體。安裝公用程式的原始套件名稱為 SqlRun01.msi 至 SqlRun16.msi。

若要下載 MSDE 2000 SP4，請執行下列操作：

- 造訪此 Microsoft 網站 (英文)。
- 在此網頁右上方的 [Full Download] 下拉式清單中，為您的 SQL Server 2000 執行個體所使用的語言選取相符的語言，然後按一下 [Go]。
- 在與所選擇語言對應的 Microsoft 下載中心頁面上，選取 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe 檔，其中 LLL 會因不同的語言而有所變化。

[回到頁首]

## 2.3 解壓縮 MSDE 2000 SP4 檔案

您必須先從 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe 解壓縮安裝檔案，才能安裝 MSDE 2000 SP4。可以直接從 SP4 CD 執行 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe，或從下載檔案或存放複製自 CD 中檔案所在的資料夾執行。

若要解壓縮 MSDE 2000 SP4 檔案，請執行下列操作：

- 開啟 [檔案總管]，並瀏覽至 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe. 所在的資料夾。
- 按兩下已下載的檔案以解壓縮 MSDE 2000 SP4 檔案。受到要求時，指定您要將 SP4 檔案解壓縮到哪個資料夾。

[回到頁首]

## 2.4 下載及解壓縮階段性指導方針

從網際網路下載及解壓縮 MSDE 2000 SP4 安裝檔案時，請使用下列指導方針：

- 當您執行 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe 將 SP4 檔案放置在資料夾中時，請確定您具有約為可執行檔三倍大小的可用空間，以供 Service Pack 安裝檔案解壓縮及儲存之用。您必須有足夠的可用空間才可儲存自動解壓縮檔和已解壓縮的 Service Pack 檔案，以及自動解壓縮程式所需要的暫時工作空間。
- 當您執行自動解壓縮檔案 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe 時，檔案會提示您為用於存放 Service Pack 檔案的資料夾提供名稱。

  注意 當您將 Service Pack 解壓縮至網路共用目錄時，您所指定的資料夾路徑與您執行 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe. 的資料夾是相關的。

- 您可以在解壓縮元件後重新命名或移動資料夾。但請確定資料夾路徑名稱不含空格。
- 您可以將四個 SP4 自動解壓縮檔案全部下載，並將它們解壓縮至相同的目標資料夾，以建立一個可用來安裝 SQL Server 2000 SP4 各個部分的位置。這四個自動解壓縮檔案不會彼此覆寫或干涉。

[回到頁首]

# 3.0 安裝 Service Pack

若要安裝 MSDE 2000 SP4，請使用以下幾節的安裝指示。安裝 MSDE 2000 SP4 前，請先檢視 1.0 小節簡介中的說明。MSDE 2000 SP4 的安裝階段如下：

1. 準備安裝 MSDE 2000 SP4
2. 執行 MSDE 2000 SP4 以安裝 Srvice Pck
3. 重新啟動服務及應用程式

MSDE 2000 SP4 含有 SQL Server 2000 Desktop Engine 執行個體安裝或升級時所需的完整檔案集。若您具有安裝或升級 MSDE 2000 執行個體的授權，您可以使用 MSDE 2000 SP4 的檔案來執行所有 MSDE 2000 安裝動作。如需 MSDE 2000 授權的詳細資訊，請參閱此 Microsoft 網站。

如需執行安裝程式的其他相關資訊，《SQL Server 2000 線上叢書》是主要的文件來源。有關安裝最新版《SQL Server 2000 線上叢書》或至 MSDN Library 存取線上複本的詳細資訊，請參閱 1.8 小節 SQL Server 2000 線上叢書已更新。

此處有一個參考主題的連結，可說明 MSDN Library 中線上叢書複本的安裝程式可執行檔。自訂 Desktop Engine Setup.exe。

在最新版的《SQL Server 2000 線上叢書》中，＜自訂 Desktop Engine Setup.exe＞說明了 Desktop Engine SP3a 與 MSDE 2000 Release A 所含之安裝程式可執行檔版本的功能。此文件也適用於 SP4 版本的 Desktop Engine 安裝程式，但不含 SP4 中所採用的 SAVESYSDB 參數。如需相關資訊，請參閱 5.6.1 小節新的 MSDE 2000 安裝程式 SAVESYSDB 參數。

注意 在 SQL Server 2000 SP3 之前的 MSDE 安裝程式版本中，使用者必須指定用來安裝或升級 MSDE 2000 執行個體的 .msi 安裝套件檔案。而在 SP3 或更新版本的安裝程式中，安裝程式會管理 .msi 檔案，因此您不需指定升級或做新安裝所使用的 .msi 檔案。

[回到頁首]

## 3.1 準備安裝 MSDE 2000 SP4

安裝 MSDE 2000 SP4 前，您必須執行下列動作：

1. 備份 SQL Server 資料庫
2. 確認系統資料庫有足夠的可用空間
3. 停止服務及應用程式

### 3.1.1 備份 SQL Server 資料庫

安裝 MSDE 2000 SP4 前，請先備份 master、msdb 與 model 資料庫。安裝 MSDE 2000 SP4 時會修改 master、msdb 與 model 資料庫，而使它們與 SP4 前的 MSDE 2000 版本不相容。若您決定重新安裝不含 SP4 的 MSDE 2000，就必須使用這些資料庫的備份。

儘管 SP4 只會在屬於複寫拓撲成員的使用者資料庫中執行更新，但是備份您所有的使用者資料庫是比較審慎的做法。

現有的備份配置會記錄複寫，讓您在升級至 SP4 後而遇到失敗時能將資料庫還原至已知的點。在套用 SP4 之後，建議為任何位在複寫拓撲中的使用者資料庫進行記錄備份或完整的資料庫備份。若您執行這些資料庫的備份，而稍後複寫資料庫失敗，就不需在資料庫還原後重新套用 SP4。

[回到頁首]

### 3.1.2 確認系統資料庫有足夠的可用空間

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

如果已對 master 及 msdb 資料庫選取了 autogrow，而且有足夠的磁碟空間，您可以略過先前空間確認的步驟。

若要確認是否選取了 MSDE 2000 中的 autogrow 選項，請使用 osql 命令提示字元公用程式發出下列 SQL 陳述式：

- `sp_helpdb master`
- `sp_helpdb msdb`

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

[回到頁首]

### 3.1.3 在執行 MSDE 2000 SP4 安裝程式前先停止服務與應用程式

安裝 Analysis Services SP4 前，應先停止所有應用程式與服務，包括 [控制台]、[新增/移除程式]、SQL Server 2000 Reporting Services、SQL Server 2000 Notification Services，以及所有連線至所要升級之 MSDE 執行個體的應用程式。

您可以不先關閉服務即套用 MSDE 2000 SP4，但如此一來，某些服務將必須等到系統重新開機後才能再次啟動。如果您不關閉服務，安裝完成時將會提示您重新開機。若未重新開啟系統，下列服務可能會無法啟動：

- Microsoft Distributed Transaction Coordinator (DTC) 及 Microsoft Search 和 MSSQLServerOLAPService 服務。
- 要升級之執行個體 (例如 MSSQL$NamedInstance) 的 MSSQLServe 和 SQLServerAgent 服務。
- Microsoft Component Services、Microsoft Message Queuing 及 Microsoft COM Transaction Integrator。

您可以降低在 MSDE 2000 SP4 安裝後必須重新啟動電腦的可能性。若要降低這種可能性，請在執行安裝程式前停止前述清單中的服務與應用程式。

[回到頁首]

## 3.2 執行 MSDE 2000 SP4 安裝程式

本節含有執行 MSDE 2000 SP4 安裝公用程式所需的一般指導方針。本節還會提供常見 MSDE 2000 SP4 案例的範例：

- 3.2.2 將現有的 MSDE 2000 執行個體升級至 SP4
- 3.2.3 安裝新的 MSDE 2000 SP4 執行個體
- 3.2.4 將 MSDE 1.0 升級至 MSDE 2000 SP4

若要安裝 MSDE 2000 SP4，請從下列位置之一執行 Setup.exe：

- 從 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe 解壓縮的 Service Pack 檔案所在的本機電腦資料夾，其中 LLL 隨語言而有所不同。
- 從 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe 解壓縮的 Service Pcak 檔案所在的網路共用資料夾。

如此即可啟動安裝程序。

MSDE 2000 SP4 所含的安裝程式執行檔為 MSDE 2000 的 Desktop Engine 安裝程式的 SP4 版本。除了 SAVESYSDB 參數外，MSDE 2000 SP4 安裝程式的作業方式都記載於最新版的《SQL Server 2000 線上叢書》中。如需安裝最新版《SQL Server 2000 線上叢書》的相關資訊，請參閱 1.8 小節SQL Server 2000 線上叢書已更新。這是一份記載 Setup.exe 行為的英文版參考主題：自訂 Desktop Engine Setup.exe。

[回到頁首]

### 3.2.1 執行安裝程式的一般指導方針

根據設計，MSDE 2000 SP4 應隨應用程式一併散發，並以應用程式的安裝程式進行安裝。MSDE 2000 並沒有互動式安裝程式。根據設計，MSDE 2000 的安裝機制必須由應用程式的安裝公用程式呼叫。應用程式的安裝程式會處理任何與使用者之間的必要互動。MSDE 2000 有兩種安裝機制：

- 命令提示字元安裝公用程式 (Setup.exe)。安裝公用程式通常由應用程式安裝公用程式所呼叫，但也可由命令提示字元視窗執行。MSDE 2000 安裝公用程式並沒有圖形化使用者介面可讓使用者控制公用程式的行為。但此公用程式接受一系列可定義公用程式要執行哪些動作的參數。

  重要事項 請一律透過 Setup.exe 的執行來安裝或升級 MSDE 執行個體。請勿嘗試透過 .msi 檔案間接啟動安裝程式，例如請勿按兩下任何一個 MSDE 2000 .msi 檔案。

- 您應一律使用 /L*v 參數來產生安裝記錄輸出檔。
- 一組 Windows Installer 合併模組。根據 Windows Installer 撰寫安裝公用程式的開發人員，可將應用程式的安裝程式設計為採用 MSDE 2000 合併模組來安裝 MSDE 2000 執行個體。開發人員可以指定對應於 MSDE 2000 安裝公用程式參數的安裝套件屬性，來控制已安裝的執行個體設定。

[回到頁首]

##### 安裝參數

您必須從命令提示字元執行 Setup.exe 來安裝或升級任何 MSDE 執行個體。使用者可以指定參數來控制 MSDE 2000 安裝程式的行為。安裝參數可透過下列兩種方式之一來指定：

- 使用命令提示字元。
- 使用安裝公用程式所讀取的 .ini 檔案。

若指定的 MSDE 安裝參數值中包含特殊字元 (如空白字元)，您必須以引號將這些值括住。在其它情況下，您可以選擇是否使用引號。

3.2.2、3.2.3 與 3.2.4 小節將針對安裝 MSDE 2000 SP4 時的常見案例提供可用參數的範例。可為安裝程式指定的參數記載於最新版的《SQL Server 2000 線上叢書》中。如需安裝最新版《SQL Server 2000 線上叢書》的相關資訊，請參閱 1.8 小節 SQL Server 2000 線上叢書已更新。這是一份記載 Setup.exe 行為的英文版參考主題：自訂 Desktop Engine Setup.exe。

注意 若您嘗試使用終端機服務連線將現有的 MSDE 執行個體升級為 MSDE 2000 SP4，或安裝新的 MSDE 2000 SP4 執行個體，則會發生問題。如果遇到問題，請從本機電腦重新啟動安裝程式。

[回到頁首]

##### 使用 .ini 檔案

您可以在 .ini 檔案中指定 MSDE 2000 Setup.exe 參數，此檔案的位置由 /settings 參數所指定。.ini 是一種文字檔；例如，您可以透過 [記事本] 建立和儲存檔案，並在檔名中加入 .ini 副檔名。在 .ini 檔案中，第一行為 [Options]。接下來，您可以指定參數，一行輸入一個參數。

安全性注意事項 如果您在安裝過程中會使用 .ini 檔案，請避免將安全性憑證存放在 .ini 檔案中。

下列範例將在命令提示字元中指定參數：

    setup SAPWD="AStrongPassword" INSTANCENAME="InstanceName"
    TARGETDIR="C:\MyInstanceFolder"

若要以 .ini 檔案中的相同參數執行安裝程式，請使用 [記事本] 建立名為 `MyParameters.ini` 的檔案，其中包含下列內容：

    [Options]
    INSTANCENAME="InstanceName"
    TARGETDIR="C:\MyInstanceFolder"

接著請使用 /settings 參數指向 .ini 檔案，以執行安裝程式：

    setup /settings "MyParameters.ini" SAPWD="AStrongPassword"

[回到頁首]

##### 要求安裝記錄

使用詳細資訊記錄可確認已有 N 次安裝成功，或在問題發生時提供疑難排解協助。

若要產生詳細資訊記錄，請指定 /L*v <LogFileName>，其中 <LogFileName> 是安裝程式用來記錄其所有動作的記錄檔名稱。若您所指定的名稱不含路徑，則記錄檔案會建立在目前的資料夾中。若您是從光碟片執行安裝程式，則必須指定硬碟上資料夾的完整路徑。

下列範例將在 C: 磁碟機的根資料夾中建立記錄檔 MSDELog.log：

磁碟機：

    setup SAPWD="AStrongSAPassword" /L*v C:\MSDELog.log

若安裝成功，記錄的結尾將出現如下項目：

    === Logging stopped: 5/16/03  0:06:10 ===
    MSI (s) (BC:7C): Product: Microsoft SQL Server Desktop Engine
     -- Installation operation completed successfully.

若安裝失敗，記錄的結尾將出現如下項目：

    === Logging stopped: 5/15/03  23:50:34 ===
    MSI (c) (6A:CE): Product: Microsoft SQL Server Desktop Engine
     -- Installation operation failed.

若安裝失敗，請在錯誤記錄中搜尋字串 "`value 3"` 。該字串的 10 行以內為自訂動作的失敗通知。通知中中包含了有關失敗性質的其他資訊。

[回到頁首]

### 3.2.2 將現有的 MSDE 2000 執行個體升級至 MSDE 2000 SP4

本節中的範例說明如何將現有的 MSDE 2000 執行個體升級至 MSDE 2000 SP4，以及如何停用該 MSDE 2000 執行個體的網路連接。若執行個體必須接受來自在其他電腦上執行之應用程式的連線，則請勿指定 DISABLENETWORKPROTOCOLS 參數。

本節中的範例假設 sa 登入使用強式密碼。如需 sa 登入密碼的詳細資訊，請參閱 1.3 小節 MSDE 2000 SP4 的安全性注意事項。

將現有的 MSDE 2000 執行個體升級至 MSDE 2000 SP4

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

       cd c:\MSDESP4Folder\MSDE

   其中 c:\MSDESP4Folder 是指存放您所解壓縮之 MSDE 2000 SP4 檔案的資料夾路徑，或是 SQL Server 2000 SP4 CD 上的 MSDE 2000 SP4 資料夾。

3. 執行下列其中一項命令：
   - 若為使用 Windows 驗證且已停用網路通訊協定的預設執行個體，請執行：

         setup /upgradesp sqlrun /L*v C:\MSDELog.log

   - 若為使用 Windows 驗證且已啟用網路通訊協定的預設執行個體，請執行：

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

   - 若為使用 Windows 驗證且已停用網路通訊協定的具名執行個體，請執行：

         setup /upgradesp sqlrun INSTANCENAME=InstanceName /L*v C:\MSDELog.log

   - 若為使用混合模式驗證且已停用網路通訊協定的預設執行個體 (其中 AnAdminLogin 代表 sysadmin 固定伺服器角色的成員)，請執行：

         setup /upgradesp sqlrun SECURITYMODE=SQL UPGRADEUSER=AnAdminLogin
         UPGRADEPWD=AdminPassword /L*v C:\MSDELog.log

   - 若為使用混合模式驗證且已停用網路通訊協定的具名執行個體 (其中 AnAdminLogin 代表 sysadmin 固定伺服器角色的成員)，請執行：

         setup /upgradesp sqlrun INSTANCENAME= InstanceName SECURITYMODE=SQL
         UPGRADEUSER=AnAdminLogin UPGRADEPWD=AdminPassword /L*v C:\MSDELog.log

   這些範例中使用換行，是為了方便閱讀。真正執行命令時則不可使用換行。

   注意 若要升級的 MSDE 2000 執行個體先前曾使用舊版的 SQL Server 2000 Service Pack 從 MSDE 1.0 進行升級，則您還必須附加 `UPGRADE=1` 到安裝程式命令中。

   安全性注意事項 如果您在安裝過程中會使用 .ini 檔案，請勿將憑證存放在 .ini 檔案中。

[回到頁首]

### 3.2.3 安裝新的 MSDE 2000 SP4 執行個體

本節中的範例將說明如何安裝已設為停用網路連接的新 MSDE 2000 SP4 執行個體 (停用網路連接是預設行為)。若執行個體必須接受在其他電腦上執行之應用程式的連線，則您還必須指定 `DISABLENETWORKPROTOCOLS=0`.

下列範例將使用所有設定項目 (如定序與檔案位置) 的預設值來安裝執行個體。這些設定可由安裝參數來控制，如 COLLATION、DATADIR 與 TARGETDIR。如需可對安裝程式指定之設定參數的相關資訊，請參閱自訂 Desktop Engine Setup.exe。

安裝新的 Desktop Engine 執行個體

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

       cd c:\MSDESP4Folder\MSDE

   其中 c:\MSDESP4Folder 是指存放您所解壓縮之 MSDE 2000 SP4 檔案的資料夾路徑，或是 SQL Server 2000 SP4 CD 上的 MSDE 2000 SP4 資料夾。

3. 執行下列其中一項命令：
   - 若要安裝設定為使用 Windows 驗證的預設執行個體，請執行：

         setup SAPWD="AStrongSAPwd" /L*v C:\MSDELog.log

     其中 AStrongSAPwd 代表要指派給 sa 登入的強式密碼。

   - 若要安裝設定為使用 Windows 驗證的具名執行個體，請執行：

         setup INSTANCENAME="InstanceName" SAPWD="AStrongSAPwd"
         /L*v C:\MSDELog.log

     其中 AStrongSAPwd 代表要指派給 sa 登入的強式密碼，而 InstanceName 為要指派給執行個體的名稱。

   - 若要安裝設定為使用混合模式驗證的預設執行個體，請執行：

         setup SAPWD="AStrongSAPwd" SECURITYMODE=SQL
         /L*v C:\MSDELog.log

     其中 AStrongSAPwd 代表要指派給 sa 登入的強式密碼。

   - 若要安裝設定為使用混合模式驗證的具名執行個體，請執行：

         setup INSTANCENAME="InstanceName" SECURITYMODE=SQL
         SAPWD="AStrongSAPwd" /L*v C:\MSDELog.log

     其中 AStrongSAPwd 代表要指派給 sa 登入的強式密碼，而 InstanceName 為要指派給執行個體的名稱。

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

重要事項 請一律為 sa 登入指定強式密碼，即使執行個體設定為使用 Windows 驗證亦然。

[回到頁首]

### 3.2.4 將 MSDE 1.0 升級至 MSDE 2000 SP4

本節中的範例說明如何將現有的 MSDE 1.0 執行個體升級至 MSDE 2000 SP4，以及如何停用執行個體的網路連接。若執行個體必須接受在其他電腦上執行之應用程式的連線，則請勿指定 DISABLENETWORKPROTOCOLS 參數。

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

注意 複寫拓撲中的 MSDE 1.0 執行個體無法升級至 MSDE 2000 SP4。

將 MSDE 1.0 執行個體升級至 MSDE 2000 SP4

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

       cd c:\MSDESP4Folder\MSDE

   其中 c:\MSDESP4Folder 是指存放您所解壓縮之 MSDE 2000 SP4 檔案的資料夾路徑，或是 SQL Server 2000 SP4 CD 上的 MSDE 2000 SP4 資料夾。

3. 執行下列其中一項命令：
   - 當您從使用 Windows 驗證的 MSDE 1.0 執行個體升級時，請執行：

         setup UPGRADE=1 DISABLENETWORKPROTOCOLS=1
         /L*v C:\MSDELog.log

   - 當您從使用混合模式驗證的 MSDE 1.0 執行個體升級時 (其中 AnAdminLogin 代表 sysadmin 固定伺服器角色的成員)，請執行：

         setup UPGRADE=1 SECURITYMODE=SQL UPGRADEUSER=AnAdminLogin
         UPGRADEPWD=AdminPassword DISABLENETWORKPROTOCOLS=1
         /L*v C:\MSDELog.log

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

安全性注意事項 強烈建議您不要使用空白密碼，因為空白密碼會大幅提高安全性缺口遭受攻擊的可能性。

注意 若您使用 `BLANKSAPWD=1`，則不需指定 `SECURITYMODE=SQL` 或 `UPGRADEUSER` 與 `UPGRADEPWD`.

[回到頁首]

## 3.3 重新啟動服務及應用程式

當安裝程式完成時，可能會提示您重新啟動系統。3.1.3 小節在執行 MSDE 2000 SP4 安裝程式前先停止服務與應用程式提供了何時需要重新啟動的相關指導方針。系統重新啟動後 (或在安裝程式完成卻未要求重新啟動的情況下)，請使用 [控制台] 中的 [服務] 應用程式，來確定您在套用 Service Pack 前所停止的任何服務都在執行中。您在套用 Service Pack 前可能停止的服務包括 DTC、MSSQLServer 與 SQLServerAgent 服務及其執行個體特定的等同項目。

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

同時，為審慎起見，也請備份已經升級的 master 與 msdb 資料庫。

[回到頁首]

## 3.4 在複寫的伺服器上安裝 MSDE 2000 SP4

下列資訊僅適用於屬於合併複寫拓撲的現有 MSDE 2000 執行個體。

- 在您升級至 SP4 之前，請確定用來執行 SQL Server 服務的 Windows 帳戶屬於 sysadmin 固定伺服器角色的成員。您必須進行此確認，因為複寫散發資料庫必須在 SQL Server 服務帳戶的內容中升級。升級至 SP4 後，請將 Windows 帳戶從 sysadmin 角色中移除。
- 您必須在升級發行者之前升級散發者。
- 若您必須在複寫拓撲中升級 MSDE 2000 執行個體，而該拓撲是以含有唯讀訂閱者的交易式複寫為基礎，則您可以在發行者與散發者之前或之後升級訂閱者。
- 若您必須在複寫拓撲中升級 MSDE 2000 執行個體，而該拓撲是以使用更新訂閱者的合併複寫或交易式複寫為基礎，則您必須在發行者與散發者之後升級訂閱者。

  注意 在大多數的情況下，尤其是在合併式複寫中，散發者及發行者會位於同一部伺服器上，並會同時升級。

- 如果您使用合併式複寫，而散發者位於另一部電腦或資料庫執行個體 (遠端散發者) 上，您必須在套用 SP4 後建立新的快照集。
- 複寫拓撲中的 MSDE 1.0 執行個體無法升級至 MSDE 2000 SP4。

[回到頁首]

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

在下列情況下，您必須靜止系統 (停止所有更新) 並同時升級所有伺服器。

- 若複寫拓撲以合併複寫為基礎
- 若複寫拓撲以交易式複寫為基礎 (此複寫會更新訂閱者)，且在這些訂閱者中，有一或多部伺服器同時具有訂閱者與發行者(或散發者) 兩種角色。

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

下表所含的伺服器可同時發行及訂閱可在訂閱者進行更新的發行集。如前一節所述，對於可在訂閱者進行更新的拓撲而言，您必須遵照散發者、發行者和訂閱者這樣的升級順序。此順序的要求是，若為合併式發行集，則先升級伺服器 A；若為含有更新訂閱者的交易式發行集，則先升級伺服器 B。在此情況下，您必須靜止系統並同時升級伺服器。

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

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

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

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

[回到頁首]

## 3.5 將 MSDE 2000 SP4 套用至複寫拓撲中的唯讀資料庫或檔案群組

下列資訊僅適用於合併複寫拓撲中所含的 MSDE 2000 執行個體。

當有不可寫入的資料庫或檔案群組時，安裝程式將顯示下列訊息：

    Setup has detected one or more databases and filegroups which are not writable.

一般而言，您可以略過此警告而繼續安裝。然而，如果有任何列於安裝記錄中的不可寫入資料庫為複寫拓撲的成員時，您必須使這些資料庫成為可寫入，並將 SP4 安裝程式重新套用至該 SQL Server 2000 執行個體。

在安裝期間，安裝程式將無法區分不可寫入的資料庫和離線或可疑的資料庫。在安裝期間，若複寫拓撲中的資料庫或檔案群組無法寫入，您必須重新套用 Service Pack 以升級此資料庫。如需有關如何使資料庫連線的詳細資訊，請參閱《SQL Server 線上叢書》中的＜附加及卸離資料庫＞主題。如需有關診斷可疑資料庫的詳細資訊，請參閱《SQL Server 線上叢書》中的＜伺服器及資料庫疑難排解＞主題。

將 MSDE 2000 SP4 套用至唯讀資料庫

1. 使唯讀資料庫可寫入，方法是使用 `ALTER DATABASE` 陳述式，如下所示：

       ALTER DATABASE database SET READ_WRITE

2. 為所有唯讀資料庫重複步驟 1。
3. 套用 (或重新套用) SP4。
4. 如有需要，可使資料庫再次成為唯讀，只要使用 `ALTER DATABASE`，如下所示：

       ALTER DATABASE database SET READ_ONLY

將 SP4 套用至唯讀檔案群組

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＞參考主題。 如需有關重新套用 SP4 的詳細資訊，請參閱 3.8 小節重新套用 MSDE 2000 SP4。

[回到頁首]

## 3.6 升級連結伺服器的目錄

當您將 MSDE 2000 執行個體升級至 MSDE 2000 SP4 時，可能必須確認某些系統的預存程序是否已在其他 SQL Server 或 MSDE 的執行個體中升級。

MSDE 2000 SP4 中包含了 Microsoft Data Access Components (MDAC) 至 MDAC 2.8 SP1 的升級。MDAC 2.8 SP1 包含了升級 SQLOLEDB 提供者與 SQL Server ODBC 驅動程式的程式。如需相關資訊，請參閱 1.5 小節確認 Microsoft Data Access Components 的版本。當提供者或驅動程式連線至 SQL Server 或 MSDE 的執行個體時，提供者或驅動程式會使用一組稱為目錄預存程序的系統預存程序。執行個體上的目錄預存程序版本，必須與提供者或驅動程式所使用的版本相同，甚至更新。若您嘗試連線至目錄預存程序版本較舊的 SQL Server 或 MSDE 執行個體，您將會收到下列錯誤：

`The ODBC catalog stored procedures installed on server <ServerName>
are version <OldVersionNumber>; version <NewVersionNumber> or later
is required to ensure proper operation. Please contact your system
administrator.`

##### 執行 Instcat.sql 指令碼

每個版本的提供者與驅動程式都會隨附名為 Instcat.sql 的指令碼。Instcat.sql 可針對任何目錄版本較舊的 SQL Server 或 MSDE 執行個體，升級其中的目錄預存程序。

安裝 MSDE 2000 SP4 後，您必須從 MSDE 2000 SP4，針對任何比 SQL Server 2000 SP4 版本為舊且具有下列特性的 SQL Server 或 MSDE 執行個體，執行 Instcat.sql 指令碼：

- 會被使用 SQLClient 管理命名空間、ADO、OLE DB 或 ODBC 的應用程式所存取，且執行於安裝有 MSDE 2000 SP4 的電腦上。
- 會由針對 MSDE 2000 SP4 執行個體執行的分散式查詢所參考。分散式查詢會包含您以 sp_addlinkedserver 以及 OPENROWSET 與 OPENQUERY 函數所定義之連結伺服器項目的參考。

針對已選取 Windows 驗證選項的 MSDE 2000 執行個體進行目錄預存程序的升級

1. 使用屬於 SQL Server sysadmin 固定伺服器角色成員的登入，來登入 Windows。
2. 開啟命令提示字元視窗。
3. 執行 osql 公用程式：
   - 若為預設執行個體，請執行：

         osql -E -SComputerName -ilocation\instcat.sql

   - 若為具名執行個體，請執行：

         osql -E -SComputerName\InstanceName -ilocation\instcat.sql

若要針對已選取 [混合模式驗證] 選項的 MSDE 2000 執行個體進行目錄預存程序的升級，請執行下列操作：

1. 使用任何登入來登入 Windows。
2. 開啟命令提示字元視窗。
3. 執行 osql 公用程式：
   - 若為預設執行個體，請執行：

         osql -UAnAdminLogin -PAdminPassword
         -SComputerName -ilocation\instcat.sql

   - 若為具名執行個體，請執行：

         osql -UAnAdminLogin -PAdminPassword
         -SComputerName\InstanceName -ilocation\instcat.sql

其中：

- AnAdminLogin 是屬於 sysadmin 固定伺服器角色成員的 SQL Server 登入。
- AdminPassword 是 AnAdminLogin 的密碼。
- ComputerName 是 SQL Server 或 MSDE 執行個體執行所在的電腦名稱。
- `InstanceName` 是 SQL Server 2000 或 MSDE 2000 具名執行個體的名稱。
- location 是資料夾的完整路徑，資料夾中包含`instcat.sql`. 安裝 SQL Server 2000 執行個體的預設位置是 c:\program files\Microsoft SQL Server\MSSQL\Install。

Instcat.sql 指令碼會產生許多訊息。一般而言，訊息並不會指出任何錯誤。它們只是通知您指令碼中的每個 Transact-SQL 陳述式各影響到多少列。最後的訊息應會指出指令碼的執行是否成功。

[回到頁首]

## 3.7 解除安裝 MSDE 2000 SP4

若要能夠回復到安裝 MSDE 2000 SP4 版之前的狀態，您必須在安裝 SP4 前先備份 master、msdb、與 model 資料庫。如需相關資訊，請參閱 3.1.1 小節備份 SQL Server 資料庫。

回復到安裝 MSDE 2000 SP4 版前的狀態

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

   警告 還原至安裝 SQL Server SP4 版前的狀態時，您在安裝 SP4 後對資料庫 master、msdb 與 model 所做的所有變更都會遺失。

   注意 還原至安裝 MSDE 2000 SP4 版前的狀態時，MDAC 並不會解除安裝。如需相關資訊，請參閱 1.5 小節驗證 Microsoft Data Access Components 的版本。

[回到頁首]

## 3.8 重新套用 MSDE 2000 SP4

若資料庫或檔案群組屬於複寫拓撲的一部份，且在應用 SP4 之初為唯讀，則在其變成可寫入的狀態後，您必須重新套用 MSDE 2000 SP4。

若要重新套用 MSDE 2000 SP4，請遵循 3.0 小節安裝 Service Pack 中的步驟。

[回到頁首]

# 4.0 其他安裝資訊

本節記載了 Service Pack 的其他安裝注意事項。

## 4.1 重新散發 MSDE 2000 SP4

MSDE 2000 SP4 含有以應用程式重新散發 MSDE 2000 的所有必要檔案，前提是應用程式廠商須具備散發 MSDE 2000 的授權。您可以根據最新版《SQL Server 2000 線上叢書》中的說明，來散發 MSDE 2000 SP4 檔案。您也可以在此 Microsoft 網站中註冊以取得 MSDE 2000 重新散發的權限。

有關安裝最新版《SQL Server 2000 線上叢書》的詳細資訊，請參閱 1.8 小節SQL Server 2000 線上叢書已更新。

[回到頁首]

##### 散發 MSDE 2000 SP4 修補程式

若應用程式具有 Windows Installer 類型的安裝公用程式，即可採用 MSDE 2000 合併模組來安裝 MSDE 2000 執行個體。MSDE 2000 SP4 針對使用合併模組的現有應用程式提供了支援的合併模組。新應用程式的安裝公用程式必須撰寫為呼叫 MSDE 2000 安裝公用程式，而非直接採用 MSDE 2000 合併模組。

選擇使用 MSDE 2000 合併模組來安裝 MSDE 2000 執行個體的廠商，必須為用戶提供所有後續的 MSDE 2000 修補程式。應用程式直接採用合併模組而安裝的 MSDE 2000 執行個體，會以 Windows Installer 用來與應用程式產生關聯的產品代碼 GUID 標示。只有同樣含有應用程式產品代碼 GUID 的修補程式檔案，才可以修補這些 MSDE 2000 執行個體。只有由應用程式廠商產生的修補程式檔案，才具有正確的產品代碼。Microsoft 所提供的 MSDE 2000 Service Pack 不適用於這些執行個體。應用程式廠商必須從 MSDE 2000 SP4 檔案建置修補程式檔案，並將這些修補程式檔案散發至任何需要 SP4 修正檔的 MSDE 用戶。

有關如何建立修補程式檔案套件的詳細資訊，請參閱 Windows Installer Software Development Kit (SDK)，您可以從 Microsoft Platform SDK 網站下載。

若應用程式安裝公用程式經由呼叫 MSDE 2000 安裝程式來安裝 MSDE 2000 執行個體，則該 MSDE 2000 執行個體會以 MSDE 2000 產品代碼 GUID 標示。用戶可以使用標準 MSDE 2000 Service Pack 檔案來修補這些執行個體。應用程式廠商可以選擇下列其中一種方式來散發 MSDE 2000 SP4：

- 指示用戶從 SQL Server 2000 SP4 下載網頁或 SQL Server 2000 SP4 CD 來安裝 MSDE 2000 SP4。指示用戶直接套用 SP4 的應用程式廠商，必須提供用戶適用的特定指示。
- 如需 Microsoft 應用程式工作團隊為用戶準備的各種 MSDE 2000 Service Pack 指示的範例，請參閱此 Microsoft MSDE Applications 網頁
- 下載 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe 下載檔案，並將此檔案連同 Service Pack 套用方式的相關指示，散發給用戶。
- 使用 MSDE 2000 SP4 檔案，建置一個 Service Pack 應用公用程式，以便在使用應用程式安裝的 MSDE 2000 執行個體上安裝 SP4。

[回到頁首]

## 4.2 MSDE 2000 SP4 檔案位置

所有 MSDE SP4 安裝檔案與資料夾皆位於 \MSDE 資料夾中，此資料夾可在下列一或多個位置中找到：

- 在 SQL Server 2000 SP4 光碟片中。
- 從 SQL2000.MSDE-KB884525-SP4-x86-LLL.exe 解壓縮的 Service Pack 檔案所在的資料夾中，其中 LLL 隨語言而有所不同。

\MSDE 資料夾中含有 Readmesql2k32desksp4.htm 檔案、readme.txt 檔案、license.txt 檔案，以及安裝公用程式的可執行檔。它還包含下列子資料夾：

- \Msi： 含有安裝 Windows Installer，或針對早於 2.0.2600.0 的 Windows Installer 版本升級時所需的可執行檔。
- \MSM： 含有合併模組安裝所需的合併模組。
- \Setup：含有 MSDE 2000 安裝程式在安裝新的 MSDE 2000 SP4 執行個體時所需的 .msi 安裝套件檔案，或是將現有的 MSDE 2000 執行個體升級至 SP4 時所需的 .msp 修補程式套件檔案。\Setup 也含有安裝程式所安裝之檔案所在的 sqlrun.cab 封包檔。

如需有關如何使用 MSDE 合併模組的進一步指示，請參閱《SQL Server 2000 線上叢書》中的＜使用 SQL Server Desktop Engine 合併模組＞主題。

注意 新的安裝不支援合併模組。這些模組提供於 SP4 中，用以服務過去使用合併模組安裝的 MSDE 2000 執行個體。

若您的應用程式安裝呼叫 MSDE 2000 安裝程式，則會建置一個含有下列結構與檔案集的資料夾。資料夾 MSDEInstallFolder 代表範例資料夾的名稱：

MSDEInstallFolder

將下列檔案從 MSDE 2000 SP4 \MSDE 資料夾複製到此位置：Setup.exe、Setup.ini、Setup.rll 與 sqlresld.dll。

MSDEInstallFolder\Msi

將下列所有檔案從 MSDE 2000 SP4 \MSDE\Msi 資料夾複製到此位置。

MSDEInstallFolder\Setup

將下列所有檔案從 MSDE 2000 SP4 \MSDE\Setup 資料夾複製到此位置。

接著即可執行 Setup.exe 以安裝或升級 MSDE 2000 SP4 的執行個體。

注意 若電腦上並未安裝 Windows Installer，或 Windows Installer 的版本太舊而不受 MSDE 2000 SP4 安裝程式的支援，安裝程式會使用 MSDEInstallFolder\Msi 資料夾中的檔案來升級 Windows Installer。

[回到頁首]

# 5.0 文件注意事項

本節將說明在您套用 MSDE 2000 SP4 後可能產生的問題，以及您在執行 SP4 時可使用的新功能。當您執行 Service Pack 從任何舊版的 MSDE 2000 (包括 MSDE 2000 Release A) 升級時，可能會發生本節所述的問題。本節不會完整說明 SP4 中提供的所有修正檔。如需這些修正檔的完整清單，請參閱知識庫文章 888799。

任何與 SQL Server 2000 Service Pack 4 相關但未能即時涵蓋於此讀我檔案中的資訊將在微軟知識庫文章 884525 (英文) 中發行。

[回到頁首]

## 5.1 MSDE 2000 增強功能

下列增強功能適用於已安裝 Database Components SP4 的 Server 2000 執行個體。它們也適用於已安裝 MSDE 2000 SP4 的 MSDE 2000 Release A 執行個體。

[回到頁首]

### 5.1.1 移除雜湊組

於 SP1 推出

雜湊組已被移除。由於 MSDE 的某些增強功能，雜湊組於 MSDE 1.0 中所提供的效能優勢已不復存在。除此之外，移除雜湊組將使 MSDE 2000 更穩定。

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

在極少數的情況下，移除雜湊組可能會導致查詢處理的速度更慢。您可以分析這類的查詢，瞭解建立更適合的索引是否可使得查詢效能回復為原先的水準。

[回到頁首]

### 5.1.2 新增 Affinity Mask 參數

於 SP1 推出

此 Service Pack 中已新增兩個 Affinity Mask 參數。

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

利用此 Service Pack，您可以指定要使用哪些 CPU 來執行磁碟 I/O 作業的執行緒。這個參數必須和 affinity mask 選項搭配使用。如需詳細資訊，請參閱知識庫文章 298402。

##### Affinity Mask Connection 參數

利用此 Service Pack，您可以設定針對 Virtual Interface Architecture (VIA) 啟用的系統，將 MSDE 2000 連線從特定網路卡繫結至一個或一組處理器。這個參數必須和 affinity mask 選項搭配使用。如需詳細資訊，請參閱知識庫文章 299641。

[回到頁首]

### 5.1.3 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.4 預設停用臨機操作存取 OLE DB 提供者

於 SP3 推出

若未明確設定 DisallowAdhocAccess 登錄選項，則依預設將不允許臨機操作存取 OLE DB 提供者。這表示臨機操作 (ad hoc) 查詢語法，例如 OPENDATASOURCE 及 OPENROWSET，在遠端伺服器上將無法作用。若要允許臨機操作存取，您必須明確將 DisallowAdhocAccess 選項設為 0。

[回到頁首]

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

於 SP3 推出

為了更有效地處理包含 LIKE 述詞的遠端查詢，SP3 中加入了 SqlServerLike 選項。MSDE 2000 SP3 或更新版本目前有兩個選項可傳送 LIKE 運算至連結的伺服器。若連結伺服器的 OLE DB 提供者支援 LIKE 運算子與萬用字元的 SQL Server 語法，您即可指定 SqlServerLike 選項，讓 MSDE 2000 使用 SQL Server 語法傳送 LIKE 運算。若連結伺服器的 OLE DB 提供者報告它可支援初級 ANSI/ISO SQL-92 語法，或傳回 SQLPROP_ANSILIKE 屬性，則 SQL Server 將使用 SQL-92 語法傳送 LIKE 運算至連結的伺服器。如需 SQLPROP_ANSILIKE 的詳細資訊，請參閱《SQL Server 2000 線上叢書》中的＜撰寫 SQLPROPSET_OPTHINTS 屬性集程式＞主題。

您必須新增登錄機碼值，才能啟用 OLE DB 提供者的 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.6 擴充的分散式查詢錯誤訊息

於 SP3 推出

對於分散式查詢，MSDE 2000 除了會傳回伺服器錯誤資訊，也會傳回提供者錯誤資訊。當相連結的伺服器之間的查詢發生錯誤時，MSDE 2000 會檢查提供者是否支援 IErrorRecords OLE DB 介面。如果支援這個介面，則 MSDE 2000 會呼叫 GetErrorInfo 函數以從提供者取得其他錯誤資訊，並將此資訊當作錯誤訊息的一部份傳回給使用者。如果不支援 IErrorRecords 介面，則 MSDE 2000 的行為將不會改變：MSDE 2000 會傳回一般錯誤。

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

    SELECT * FROM remote2k.dqtable.dbo.sqlvariantnotnull
    --Remote2k is a loopback server.

套用 SP3 之前，MSDE 2000 會傳回下列錯誤訊息：

`Server: Msg 7356, Level 16, State 1, Line 1`

`OLE DB provider 'msdasql' supplied inconsistent metadata for a column.
Metadata information was changed at execution time.`

套用 SP3 或更新版本之後，MSDE 2000 會傳回下列錯誤訊息：

`Server: Msg 7356, Level 16, State 1, Line 1`

`OLE DB provider 'msdasql' supplied inconsistent metadata for a column.
Metadata information was changed at execution time.`

`OLE DB error trace [Non-interface error: Column 'sql_variant' (compile-time
ordinal 3) of object '"dqtable"."dbo"."sqlvariantnotnull"' was reported
to have a DBCOLUMNFLAGS_ISFIXEDLENGTH of 16 at compile time and 0 at run time].`

[回到頁首]

### 5.1.7 新函數 fn_get_sql 可傳回 SQL 陳述式

於 SP3 推出

SP3 與更新版本中含有新函數 fn_get_sql，可為指定的 SQL 控制代碼傳回 SQL 陳述式文字。此外，為支援此函數，sysprocesses 系統資料表中加入了三個新的資料行：sql_handle、stmt_start 與 stmt_end。

fn_get_sql 記載於最新版的《SQL Server 2000 線上叢書》中。如需安裝最新版《SQL Server 2000 線上叢書》的相關資訊，請參閱 1.8 小節 SQL Server 2000 線上叢書的更新已發行。這是一份記載 fn_get_sql 的英文版參考主題。

[回到頁首]

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

於 SP3 推出

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

安裝 MSDE 2000 SP4 時，您可以使用 ALLOWXDBCHAINING 安裝參數來啟用所有資料庫的跨資料庫擁有權鏈結。ALLOWXDBCHAINING 記載於最新版《SQL Server 2000 線上叢書》的下列主題中：自訂 Desktop Engine Setup.exe。如需安裝最新版《SQL Server 2000 線上叢書》的相關資訊，請參閱 1.8 小節SQL Server 2000 線上叢書已更新。

注意 不建議您為所有資料庫啟用跨資料庫擁有權鏈結。

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

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

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

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

如需相關資訊，請在執行安裝程式時按一下 [回溯相容性檢查清單] 頁面上的 [說明] 按鈕，下載更新版的 SQL Server 2000 線上叢書，或請參閱知識庫文章 810474 (英文)。

[回到頁首]

### 5.1.9 Trace Flag 1204 的增強功能

於 SP3 推出

追蹤旗標 1204 會傳回造成死結的鎖定類型，以及目前受到影響的命令。在 SP3 或更新的版本中，當開啟這個追蹤旗標時，死結資訊會自動寫入錯誤記錄中。

[回到頁首]

### 5.1.10 sp_changedbowner 的使用權限變更

於 SP3 推出

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

[回到頁首]

### 5.1.11 偵錯功能變更

於 SP3 推出

Microsoft Visual Studio® 6.0 及更舊的版本，或是 SP3 之前的 SQL Server Query Analyzer，預設會關閉偵錯預存程序的功能。預設也會關閉應用程式偵錯 (偵錯用戶端應用程式時，在 SQL Server Transact-SQL 中斷點停止)。若要啟用偵錯功能，請執行 sp_sdidebug 並傳遞 legacy_on 參數。若要停用偵錯，請將 legacy_off 傳遞給此程序。

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

如需詳細資訊，請參閱知識庫文章 328151。

[回到頁首]

### 5.1.12 具名管道無法在叢集伺服器上停用

於 SP3 推出

套用 Service Pack 後，您便無法在加入容錯移轉叢集的資料庫引擎執行個體上停用「具名管道」通訊協定。

[回到頁首]

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

於 SP3a 推出

從 MSDE 2000 SP3a 開始，設定為不支援網路通訊的 MSDE 2000 執行個體將會停止使用「使用者資料包通訊協定 (UDP)」連接埠 1434。設定為支援網路通訊的執行個體將使用 UDP 1434。

執行個體在升級至 SP3a 或更新版本後，當該執行個體的所有伺服器網路程式庫 (共用記憶體網路程式庫除外) 都停用時，就會停止使用 UDP 1434。當您啟用任何伺服器網路程式庫時，執行個體就會開始使用連接埠 1434。如需停用或啟用伺服器網路程式庫的相關資訊，請參閱《SQL Server 2000 線上叢書》中的＜SQL Server 網路公用程式＞主題。

電腦不會停止使用 UDP 連接埠 1434，除非電腦上所有的 SQL Server 2000 與 MSDE 2000 執行個體都已升級至 SP3a 或更新版本，而且已設定為不支援網路通訊。

共用記憶體網路程式庫的狀態並不會影響到 UDP 連接埠 1434 的開啟或關閉。共用記憶體網路程式庫僅適用於本機連線，而不會使用網路。共用記憶體網路程式庫一律為作用中，您無法加以啟用或停用。

您也可以在安裝或升級 MSDE 2000 執行個體時指定是否停用伺服器網路程式庫。請使用 MSDE 2000 安裝公用程式 DISABLENETWORKPROTOCOLS 參數，或 MSDE 2000 合併模組 SqlDisableNetworkProtocols 屬性。如需這些選項的詳細資訊，請參閱最新版《SQL Server 2000 線上叢書》的下列主題：自訂 Desktop Engine Setup.exe。如需安裝最新版《SQL Server 2000 線上叢書》的相關資訊，請參閱 1.8 小節SQL Server 2000 線上叢書已更新。

[回到頁首]

### 5.1.14 變更為最大網路封包大小

於 SP4 推出

在 SP4 中，網路封包大小選項 (以 sp_configure 設定) 的最大值為 32767。此值略小於先前最大值 65536 的二分之一。在升級的過程中，現有的值若大於 32767 將自動被調整為 32767。若有指令碼嘗試使用 sp_configure 來設定一個大於 32767 但小於或等於 65536 的值，此值也將被設為 32767。若將網路封包大小設為 65536 以上的值，則會導致錯誤。

[回到頁首]

### 5.1.15 最佳化含大型 IN 清單或大量 OR 子句的查詢

於 SP4 推出

SP4 對 SQL Server 最佳化工具的行為做了變更，這項變更會影響述詞中含有大型 IN 清單或大量 OR 子句的查詢。更明確地說，這項變更 (於 SQL Server 2000 Hotfix 789 中推出) 會影響含有下列項目的查詢，或可透過含有下列項目的相等運算式加以覆寫的查詢：

- IN 清單中有 10,000 個以上的元素
- 兩份 IN 清單，每份清單各含 100 個以上的元素
- OR 子句中有 10,000 個以上的轉折元素
- OR 子句與 IN 清單的組合，致使其等同運算式包含 10,000 個以上的轉折元素

當這類查詢在具有大量記憶體且並行作業較少的系統上執行時，最佳化程式可選擇低效能的查詢計劃。為覆寫最佳化工具行為的變更，此 Service Pack 中提供了追蹤旗標 9060。追蹤旗標 9060 預設為 OFF。當追蹤旗標為 ON 時，就會啟用 Hotfix 789 之前的 SP3 行為。若在追蹤旗標為 ON 時產生錯誤 701 (系統記憶體不足)，請考慮為 IN 清單中的值使用暫存資料表或資料表變數，藉以重新寫入查詢。若為數值範圍，請使用 BETWEEN 子句或大於 (>) 或小於 (<) 運算子。如需使用追蹤旗標的相關資訊，請參閱《SQL Server 線上叢書》的＜追蹤旗標＞。

[回到頁首]

### 5.1.16 未來的網路通訊協定支援

於 SP4 推出

SP4 支援 Banyan VINES、Multiprotocol、AppleTalk 與 NWLink IPX/SPX 等網路通訊協定。但這些通訊協定將不受 SQL Server 2005 與後續版本的支援。請依此進行規劃。

[回到頁首]

## 5.2 複寫增強功能

本節討論 MSDE 2000 SP4 所含之 MSDE 2000 複寫的增強功能。

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

於 SP1 推出

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

若您使用交易式複寫且在訂閱資料表上有數個索引，但只有若干資料行的值會因更新而變更，則在訂閱者中套用變更時，為維護索引而產生的負荷可能會使效能受到影響。例如，用於報告目的的訂閱資料庫可能比發行集資料庫具有更多的索引。在執行時期動態建置 UPDATE 陳述式可改善效能。這個更新僅包括已變更的資料行，而建立了最理想的 UPDATE 字串。

這個 Service Pack 包含新的預存程序 sp_scriptdynamicupdproc，它可以產生自訂的預存程序供您在訂閱者中使用，以在執行時期動態建置 UPDATE 陳述式。然而，在執行時期建置動態的 UPDATE 陳述式需要額外的處理。

sp_scriptdynamicupdproc 記載於最新版的《SQL Server 2000 線上叢書》中。如需安裝最新版《SQL Server 2000 線上叢書》的相關資訊，請參閱 1.8 小節 SQL Server 2000 線上叢書的更新已發行。這是一份記載 sp_scriptdynamicupdproc 的英文版參考主題。

[回到頁首]

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

於 SP1 推出

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

sp_scriptpublicationcustomprocs 記載於最新版的《SQL Server 2000 線上叢書》中。如需安裝最新版《SQL Server 2000 線上叢書》的相關資訊，請參閱 1.8 小節 SQL Server 2000 線上叢書的更新已發行。這是 sp_scriptpublicationcustomprocs 參考主題的英文版本。

[回到頁首]

### 5.2.3合併複寫保留性中繼資料清除

於 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 的其他參數)。

  重要事項 發行集的預設保留期限為 14 天。如果某一發行項屬於許多發行集，就可能有不同的保留期限。在那種情況下，會使用最長的保留期限來判斷最早可能發生的清除時間。如果在資料庫上有多重發行集，且其中有任何一個發行集使用了無限的發行集保留期限 (@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.2.4 合併式複寫的備份及還原問題

於 SP1 推出

還原自備份的發行集資料庫應先與具有全域訂閱 (也就是具有指定優先順序值的訂閱) 的訂閱資料庫進行同步，以確保正確的交集行為。同步處理可確保發行集資料庫中因還原作業而失去的變更，能夠正確地重新套用。

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

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

- 使用未超過保留期限的備份來還原訂閱資料庫。

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

- 在產生備份前先進行同步。

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

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

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

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

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

[回到頁首]

### 5.2.5 從不同版本的 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.2.6 快照代理程式的新 -MaxNetworkOptimization 命令列引數

於 SP2 推出。

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

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

注意 只有在合併發行集的同步最佳化選項設定為 true 時，才應將此參數設為 1 (sp_addmergepublication 的 @keep_partition_changes 參數)。

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

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

    EXEC sp_add_agent_parameter 1, 'MaxNetworkOptimization', 1

[回到頁首]

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

於 SP3 推出

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

sp_createmergepalrole 記載於最新版的《SQL Server 2000 線上叢書》中。如需安裝最新版《SQL Server 2000 線上叢書》的相關資訊，請參閱 1.8 小節 SQL Server 2000 線上叢書的更新已發行。這是一份記載 sp_createmergepalrole 的英文版參考主題。

[回到頁首]

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

於 SP3 推出

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

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

注意 遠端代理程式啟動功能一律會要求作業步驟在 sysadmin 固定伺服器角色中的使用者帳戶內容裡執行。

[回到頁首]

### 5.2.9 預存程序使用權限的變更

於 SP3 推出

數個用來執行、管理及監視複寫拓撲之預存程序上的使用權限已經遭到變更。這些變更大部分包含更嚴謹的使用權限 (執行預存程序所需)。如需新使用權限的相關資訊，請檢閱《SQL Server 線上叢書》更新版裡關於複寫預存程序的 Transact-SQL 參考說明文件。如需更新的《SQL Server 線上叢書》的詳細資訊，請參閱 1.8 小節 SQL Server 2000 線上叢書的更新已發行。

[回到頁首]

### 5.2.10 sp_addmergearticle 及 sp_changemergearticle 的新參數

於 SP3 推出

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

注意 當您在 sp_changemergearticle 中變更這個參數時，快照集必會無效，而且必須重新初始化訂閱者。

[回到頁首]

### 5.2.11 Windows Synchronization Manager 支援變更

於 SP3 推出

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

[回到頁首]

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

於 SP3 推出

在某些特定的情況下，複寫可能會在附加或還原發行資料庫的過程中產生問題。這些情況包括：

- 已套用 SP3 或更新版本。
- 附加到資料庫的使用者並非 sysadmin 固定伺服器角色的成員。
- 不允許跨資料庫鏈結。

若這些情況全都屬實，則您應在附加或還原的資料庫上執行 sp_changedbowner 預存程序。請指派擁有權給 sa 內建系統管理員登入。如此可確保複寫功能正常運作。

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

如需跨資料庫擁有權鏈結的詳細資訊，請參閱 5.1.8 小節跨資料庫擁有權鏈結。

[回到頁首]

### 5.2.13 複寫 ActiveX 控制項的安全性指定變更

於 SP4 推出

複寫 ActiveX® 控制項 (sqlinitx.dll、sqldistx.dll、sqlmergx.dll 與 replerrx.dll) 不再指定為「可安全地執行指令碼」與「可安全地初始化」。控制項的安全性與功能行為在 SP3 後便無變更，但安全性指定已變更為符合安全性標準。這些變更會影響在網頁中叫用內嵌式複寫 ActiveX 控制項的應用程式。

[回到頁首]

### 5.2.14 合併發行集中的發行項所適用的新參數

於 SP4 推出

當您呼叫 sp_addmergearticle 時，可以指定新的參數 @compensate_for_errors。此參數可指定是否要在同步處理期間發生錯誤 (如條件約束違規) 時採取補償動作。設為 TRUE (預設值) 時，如果在同步處理期間遇到無法將變更套用至某個節點的情況，將會產生補償動作來復原對所有其他節點的變更。在某些情況下這是很適當的行為，但在其他情況下，則可能會造成問題；例如，若有訂閱者是因設定不正確而產生了錯誤，也會導致發行者與所有其他訂閱者上的變更遭到復原。

指定 FALSE 值可停用這些補償動作，但錯誤仍會記錄下來，而後續的合併會繼續嘗試套用變更。雖然受到影響的資料列可能會有失去交集的資料，但只要您儘早解決錯誤，即可套用變更，資料也會交集。

注意 若發行項的來源資料表已在其他發行集中發行過，則兩個發行項的 @compensate_for_errors 值必須相同。

[回到頁首]

### 5.2.15 在交易式發行集中複寫身分識別資料行所使用的新結構描述選項

於 SP4 推出

在先前的版本中，交易式發行集中的識別資料行會複寫為基底資料型別 (如 int)，而不會設定識別屬性。這個方法很適合不允許在訂閱者執行插入的應用程式。SQL Server 2000 SP4 針對交易式發行集推出了新的結構描述選項 (0x4)，可用來將識別資料行複寫為識別資料行。這在許多情況下都有用處，包括雙向複寫時，以及使用訂閱者作為暖待命伺服器時。在這些情況下，可在訂閱者上執行插入，且這些插入會造成識別資料行的遞增。

指定將識別資料行複寫為識別資料行：

1. 在發行者上建立資料表時，請針對識別資料行指定 NOT FOR REPLICATION 選項。如此可確保只有使用者插入 (而非複寫代理程式插入) 會使識別資料行遞增。如需相關資訊，請參閱《SQL Server 線上叢書》中的＜CREATE TABLE＞。
2. 當新增含有識別資料行的發行項時，請針對 sp_addarticle 的 @schema_option 參數設定選項 0x4。如需此參數的相關資訊，請參閱《SQL Server 線上叢書》中的＜sp_addarticle＞。
3. 初始化訂閱者後，請針對每個含有識別資料行的資料表執行 DBCC CHECKIDENT。如此可讓您指定在訂閱者上的識別資料行中插入的起始值，使插入的值不會與在發行者上插入的值相同。例如，您可以指定在訂閱者上插入的值應從 1,000,000 開始：

       USE Northwind
       GO
       DBCC CHECKIDENT ('Employees', RESEED, 1000000)
       GO

如需相關資訊，請參閱《SQL Server 線上叢書》中的 DBCC CHECKIDENT。

### 5.2.16 執行於 Windows-on-Windows 64 模式中的散發者不支援非 SQL Server 的訂閱者

於 SP4 推出

在執行 X64 或相容處理器的 Windows 2003 SP1 系統上執行 Windows-on-Windows 64 模式的 SQL Server 2000 (32 位元) 散發者執行個體無法擁有非 SQL Server 的訂閱者。雖然 SQL Server 2000 SP4 目前已支援 Windows-on-Windows 64 模式的執行，但用來連接散發者與非 SQL Server 訂閱者的驅動程式或提供者並不支援這種模式。

[回到頁首]

## 5.3 SQL Server 代理程式及共用工具增強功能

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

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

於 SP2 推出

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

[回到頁首]

### 5.3.2 SQL Server 代理程式使用權限檢查

於 SP3 推出

MSDE 2000 現在可進行檢查，以確定代理程式作業擁有者具有從每項作業附加或覆寫輸出記錄檔的使用權限。這會以三種方式發生：

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

在所有的情況下，作業都會使用 SQL Server 代理程式認證寫入，但 MSDE 2000 現在可進行測試，以確定使用者擁有使用權限，而可寫入到伺服器上所選的作業輸出記錄檔位置。錯誤會出現在作業歷程記錄中，但如果無法寫入記錄檔，作業步驟就不會失敗。

[回到頁首]

### 5.3.3 SQL Agent Mail MAPI 設定檔

於 SP3 推出

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

[回到頁首]

## 5.4 XML 增強功能

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

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

於 SP3 推出

當您套用 SP4 時，OPENXML 會更新為使用對 MSXML 2.6 具有回溯相容性的自訂 XML 剖析技術。

在 SP3 之前，OPENXML 所使用的 XML 剖析器版本，允許 XPath 運算式中的述詞跟隨在用來識別目前內容節點的特殊字元縮寫之後 (在 XPath 語法中，這個特殊縮寫字元是以句點 (`.`) 表示)。這就違反了 XPath 語法規格，因其要求這個字元要跟隨在位置路徑運算式的後面。

根據新的 OPENXML 行為，述詞將無法緊接在目前內容節點縮寫的特殊字元之後。升級到 SP3 或更新版本後，在 SQLXML 查詢 (針對註解所對應的結構描述所執行的 XPath 查詢，和 XSLT 樣式表中撰寫來轉換 SQLXML 查詢結果的 XPath 查詢) 中使用錯誤語法的 XPath 運算式將會失敗。

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

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

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

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

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

[回到頁首]

## 5.5 DB-Library 及 Embedded SQL for C

於 SP1 推出，於 SP4 更新

雖然 SQL Server 2000 與 MSDE 2000 仍支援資料程式庫 (DB-Library) 及 Embedded SQL for C API，但未來的 SQL Server 版本將不會包括使用這些 API 在應用程式上撰寫程式時所需的檔案或說明文件。使用 DB-Library 及 Embedded SQL for C 撰寫之現有應用程式的連線，在下一版 SQL Server 中仍會受到支援，但在未來版次中將會取消此項支援。撰寫新的應用程式時請勿使用 DB-Library 或 Embedded SQL。在修改現有的應用程式時，請摒除對這些技術的依賴。請不要使用資料程式庫或 Embedded SQL for C，而使用 NET Framework 的 system.data.SQLClient 命名空間，或 ADO、OLE DB 或 ODBC 等 API 來存取 SQL Server 中的資料。如需這些技術的相關資訊，請參閱《SQL Server 線上叢書》或 .NET Framework SDK。

[回到頁首]

## 5.6 MSDE 2000 安裝程式增強功能

以下主題將說明 MSDE 2000 安裝程式的增強功能。

### 5.6.1 新的 MSDE 2000 安裝程式 SAVESYSDB 參數

於 SP4 推出

MSDE 2000 SP4 針對 MSDE 2000 安裝程式推出了新的 SAVESYSDB 參數。根據設計，將使用合併模組或 MSI 檔案安裝的 MSDE 2000 執行個體，升級至未來版本的 SQL Server 2005 Express Edition 時，即可使用 SAVESYSDB 參數。SAVESYSDB 將可與針對 SQL Server Express 未來版本規劃的新功能搭配使用。只有從命令提示字元上執行 MSDE 2000 安裝程式以進行執行個體的解除安裝作業時，SAVESYSDB 才有效。

根據預設，當您解除安裝 MSDE 2000 執行個體時，MSDE 2000 安裝程式會刪除 master、model 與 msdb 系統資料庫中的檔案。當您指定 SAVESYSDB=1 時，MSDE 2000 安裝程式會將這些資料庫的檔案保留在原處。

雖然 SAVESYSDB 隨時都可以指定，但只有與 /x 解除安裝參數一起使用時，才會進行處理：

    Setup /x sqlrun01.msi SAVESYSDB=1 INSTANCENAME="MyInstance"

若未指定 /x，SAVESYSDB 則會被忽略。若 SAVESYSDB 與 /x 都已指定，則必須將 SAVESYSDB 設定為 1，設為其他值都會產生錯誤。

[回到頁首]

## 5.7 實用性增強功能

於 SP4 推出

SQL Server 2000 SP4 推出了新的實用性功能，可讓您將執行於 Windows XP 與 Windows Server 2003 上的 SQL Server 2000 SP4 (或更新版本) 所套用的 Hotfix 解除安裝。(SQL Server 2000 SP3 也具有相同的功能，但必須先另外運用 Hotfix 才可使用)。

[回到頁首]