Microsoft SQL Server 2005 Express Edition

###

SQL Server 文件集小組雖然無法回答技術支援問題，但卻竭誠歡迎您提供對本讀我文件集的意見和建議。您可以利用提供的連結，迅速將電子郵件回函直接寄出。請以英文書寫回函。 若要提出您針對此文件所寫下的回函，請按一下這裡：提交回函。

# 內容

1.0 簡介

2.0 下載及安裝 SQL Server Express

2.1 .NET Framework 2.0

2.2 SQL Server Express

2.3 管理 SQL Server Express 的工具

2.4 存取安裝程式文件集

2.5 SQL Server 2005 讀我檔案

3.0 安裝問題

4.0 其他資訊

4.1 服務帳戶及網路通訊協定

4.2 使用者執行個體功能

4.3 WMI 提供者與使用者執行個體功能

4.4 線上叢書

4.5 取得 SQL Server Express 協助

4.6 新聞群組支援

4.7 提供關於 SQL Server Express 的回函

5.0 Database Engine

6.0 複寫

[上端]

# 1.0 簡介

Microsoft SQL Server 2005 Express Edition (SQL Server Express) 是 SQL Server 2005 簡單易用的免費版本，取代了 Microsoft Desktop Engine (MSDE)。SQL Server Express 與 Microsoft Visual Studio 2005 整合，可讓開發人員輕鬆開發功能強大而安全的資料驅動應用程式，並加以快速部署。SQL Server Express 可以根據合約轉散發，其功能相當於用戶端資料庫和基本伺服器資料庫。SQL Server Express 是獨立軟體廠商 (ISV)、伺服器使用者、非專業開發者、Web 應用程式開發者、網站託管商和建立用戶端應用程式之愛好者的理想選擇。

未能在此讀我檔案中及時加入的任何 SQL Server Express 相關資訊會公佈於 Microsoft 知識庫文件 907284。

如需有關針對使用 SQL Server Express 新聞群組提供意見的詳細資訊，請參閱 4.6 新聞群組支援。

[上端]

# 2.0 下載及安裝 SQL Server Express

此章節說明安裝 .NET Framework 2.0、SQL Server Express 及可用來連接到 SQL Server Express 的工具等資訊。

### 2.1 .NET Framework 2.0

在安裝 SQL Server Express 之前，必須先安裝 .NET Framework?2.0。

SQL Server Express 取決於特定的 .NET Framework 2.0 版。如果您使用其他版本，SQL Server Express 可能無法如預期安裝。.NET Framework 2.0 可以從 Microsoft 網站下載。

注意：
.NET Framework 2.0 會由 Microsoft Visual Studio 2005 及所有 SQL Server 2005 版本自動加以安裝。

[上端]

### 2.2 SQL Server Express

SQL Server Express 可以從 Microsoft 網站下載。

注意：
請務必遵循下載網站提供的指示下載和擷取產品。

安裝 SQL Server Express 以後，請在命令提示字元處使用下列命令連接到 SQL Server Express：

`sqlcmd -S Server\Instance`

其中 Server 是電腦的名稱，Instance 是您要連接的執行個體名稱。如果您在安裝期間使用了預設具名執行個體，請將執行個體指定為 "SQLExpress"。

[上端]

### 2.3 管理 SQL Server Express 的工具

如需有關連接到及管理 SQL Server Express 資料庫的詳細資訊，請參閱 Microsoft 知識庫文件 907716。

[上端]

### 2.4 存取安裝文件集

＜SQL Server Express 安裝需求＞文件概述硬體與軟體需求。

[上端]

### 2.5 SQL Server 2005 讀我檔案

SQL Server 2005 讀我檔案可以在此 Microsoft 網站取得。

注意：
未能在此讀我檔案中及時加入的任何 SQL Server 2005 及 SQL Server Express 相關資訊會公佈於 Microsoft 知識庫文件 907284。

[上端]

# 3.0 安裝程式問題

本小節詳細說明此版本中的「安裝程式」問題。

### 3.1 現有 SQL Native Client 安裝可能造成安裝程式失敗

安裝程式可能會失敗和回復，並且出現下列錯誤訊息：「找不到產品 Microsoft SQL Native Client 的安裝封裝。請使用有效的安裝封裝 'sqlncli.msi'，重新安裝一次。」若要暫時解決這個問題，請利用 [新增或移除程式]，將 SQL Native Client 解除安裝。在叢集上解除安裝所有節點的 SQL Native Client。然後再次執行 SQL Server 安裝程式。

[上端]

### 3.2 System Configuration Checker 失敗，錯誤訊息為「效能監視器計數器檢查失敗」

System Configuration Checker (SCC) 會在 SQL Server 安裝開始之前確認「 效能監視器計數器」登錄機碼的值。如果 SCC 無法確認現有的登錄機碼，或 SCC 無法執行 Lodctr.exe 系統程式，則 SCC 檢查會失敗，「安裝程式」會被封鎖。若要完成安裝程式，必須手動遞增登錄機碼。

注意：
錯誤地編輯登錄會導致嚴重問題，可能需要您重新安裝作業系統。Microsoft 無法保證可以解決錯誤編輯登錄所產生的問題。編輯登錄之前，請備份所有有用的資料。如需有關如何備份、還原及編輯登錄的詳細資訊，請參閱 Microsoft 知識庫文件 256986。

若要手動遞增計數器登錄機碼：

1. 在工作列上，依序按一下 [開始] 和 [執行]，在 [執行] 文字方塊中輸入 [regedit.exe]，然後再按一下 [確定]。

2. 導覽至下面這個登錄機碼：[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]。查閱下列機碼：

   - "Last Counter"=dword:00000ed4 (5276)
   - "Last Help"=dword:00000ed5 (5277)

3. 確認值。先前步驟 (5276) 的 Last Counter 值，必須等於下列登錄機碼中，來自 Perflib\009 的 Counter 機碼最大值，而先前步驟 (5277) 的 Last Help 值，則必須等於下列登錄機碼中，來自 Perflib\009 的 Help 機碼最大值：[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]。

   注意：
   "009" 是用於英文 (美國) 的機碼。

4. 必要時，請修改 \Perflib 機碼中的 Last Counter 和 Last Help 值。請以滑鼠右鍵按一下右窗格中的 [Last Counter] 或 [Last Help]，然後選 [修改]，再按一下 [基底 = 十進位]，設定 [值] 資料欄位中的值，然後再按一下 [確定]。必要時，請對另一個機碼重複執行這些步驟，然後再關閉登錄編輯器。

5. 再執行一次「SQL Server 2005 Express Edition 安裝程式」。

[上端]

### 3.3 SQL Server Express 線上叢書出現關於作業系統支援的錯誤資訊

《SQL Server Express 線上叢書》的＜硬體與軟體需求 (SQL Server Express)＞主題未列出正確的作業系統清單。下列為 SQL Server Express 支援的作業系統。

- Windows Server 2003 SP1
- Windows Server 2003 Enterprise Edition SP1
- Windows Server 2003 Datacenter Edition SP1
- Windows Small Business Server 2003 Standard Edition SP1
- Windows Small Business Server 2003 Premium Edition SP1
- Windows XP Professional SP2
- Windows XP Home Edition SP2
- Windows XP Tablet Edition SP2
- Windows XP Media Edition SP2
- Windows 2000 Professional Edition SP4
- Windows 2000 Server Edition SP4
- Windows 2000 Advanced Edition SP4
- Windows 2000 Datacenter Server Edition SP4

[上端]

### 3.4 如果在 Windows Server 2003 上停用密碼編譯服務，安裝程式會失敗，並出現 Windows 標誌需求對話方塊

「Windows 密碼編譯服務提供者 (CSP)」是執行驗證、編碼和加密服務 (Windows 架構應用程式透過 Windows Server 2003 上的 CryptoAPI 所存取) 的程式碼。如果停止或停用 CSP 服務，SQL Server 安裝程式將失敗並顯示「Windows 標誌需求」訊息。

注意：
在 Windows Server 2003 容錯移轉叢集上執行「SQL Server 安裝程式」之前，必須於所有叢集節點上啟動 CSP 服務。

若要在 Windows Server 2003 上啟用 Windows CSP 服務：

1. 在 [控制台] 上，開啟 [系統管理工具]，然後連按兩下 [服務]。

2. 在 [名稱] 資料行中，以滑鼠右鍵按一下 [密碼編譯服務]，然後按一下 [啟動]。

3. 關閉 [服務]。

4. 執行「安裝程式」。

[上端]

### 3.5 Windows 上未完全啟用 MSDTC

因為 Windows 中未完全設定「Microsoft 散發交易協調器 (MS DTC)」，所以應用程式可能無法將 SQL Server Express 資源編列到散發交易中。這一問題會影響連結的伺服器、分散式查詢和使用散發交易的遠端預存程序。若要防止此類問題，必須在安裝 SQL Server Express 的伺服器上完全啟用 MS DTC 服務。

若要完全啟用 MS DTC：

1. 在 [控制台] 上，開啟 [系統管理工具]，然後連按兩下 [元件服務]。

2. 在 [控制台根目錄] 的左窗格中，按一下 [元件服務]，然後展開 [電腦]。

3. 以滑鼠右鍵按一下 [我的電腦]，然後按一下 [內容]。

4. 在 [MSDTC] 索引標籤上，按一下 [安全性組態]。

5. 在 [安全性設定] 下方，選取所有核取方塊。

6. 確認 [DTC 登入帳戶] 名稱設定為 NT AUTHORITY\NetworkService。

[上端]

### 3.6 依預設不安裝範例資料庫

依預設，在 SQL Server Express 中不會安裝範例資料庫。Northwind 及 pubs 範例資料庫可以從此 Microsoft 網站下載。Adventureworks 範例資料庫可從 Microsoft 網站安裝。

[上端]

### 3.7 「強制加密」組態可能會導致 SQL Server Express 安裝程式失敗

如果現有的 SQL Server 用戶端安裝設定了啟用「強制加密」選項，則安裝程式可能會失敗。若要解決此問題，請在所有 SQL Server 用戶端停用此選項。對於 SQL Server 2000 中的 Microsoft Data Access Components (MDAC) 用戶端，請使用 SQL Server 2000 用戶端網路公用程式。對於 SQL Native Client，請使用 [新增或移除程式] 解除安裝 SQL Native Client。在叢集上解除安裝所有節點的 SQL Native Client。然後重新執行 SQL Server 2005 安裝程式。

[上端]

### 3.8 升級系統資料庫時對 sp_configure 的設定可能會導致安裝程式失敗

當您使用 SAVESYSDB 解除安裝 SQL Server Express 的先前 Community Technology Preview (CTP) 版本，然後使用 USESYSDB 安裝此版本時，如果 sp_configure 選項 SMO 及 DMO XP 在先前執行個體上為停用，則從命令提示字元進行的安裝會失敗。若要解決此問題，請在使用「安裝程式」升級系統資料庫之前確定這些選項已啟用。如需詳細資訊，請參閱《SQL Server 線上叢書》中的＜設定伺服器組態選項＞(位於 Microsoft 網站)。

[上端]

### 3.9 安裝 SQL Server 2000 預設執行個體可能停用 SQL Server Express

如果您的電腦裝有 SQL Server 2000 管理工具及 SQL Server Express 預設執行個體，則 SQL Server 安裝程式會允許您安裝 SQL Server 2000 預設執行個體。然而，這麼做停用已安裝的 SQL Server Express 執行個體。因此，如果 SQL Server 2000 管理工具及 SQL Server Express 預設執行個體已存在於電腦上，請勿安裝 SQL Server 2000 預設執行個體。

[上端]

### 3.10 在 Windows 網域控制站上安裝 SQL Server Express

安全性注意事項：
建議請勿在網域控制站上執行 SQL Server Express。

SQL Server Express 可以在 Windows 網域控制站上安裝，但是無法在 Windows Server 2003 網域控制站上執行成為本機服務或網路服務。SQL Server 服務帳戶應該被當作 Windows 網域使用者帳戶執行。您也可以安裝 SQL Server 服務帳戶，當作本機系統執行，但建議您不要這麼做。

在安裝 SQL Server Express 之後，請勿變更伺服器的角色。例如，如果您在成員伺服器上安裝 SQL Server Express，請勿使用 Dcpromo 工具將伺服器升級為網域控制站。另外，如果您在網域控制站上安裝 SQL Server Express，請勿使用 Dcpromo 將伺服器降級為成員伺服器。在安裝 SQL Server Express 之後變更伺服器的角色，會造成功能不良，並且不受支援。

[上端]

### 3.11 現有 SQL Native Client 安裝可能造成安裝程式失敗

安裝程式可能會失敗和回復，並且出現下列錯誤訊息：「找不到產品 Microsoft SQL Native Client 的安裝封裝。請使用有效的安裝封裝 'sqlncli.msi'，重新安裝一次。」若要暫時解決這個問題，請利用 [新增或移除程式]，將 SQL Native Client 解除安裝。在叢集上解除安裝所有節點的 SQL Native Client。然後再次執行 SQL Server 安裝程式。

[上端]

### 3.12 解除安裝 SQL Server Express 及 Visual Studio 2005 的發行前版本

在安裝之前，您必須移除所有舊版的 SQL Server Express、Visual Studio 2005 及 .NET Framework 2.0。因為這兩種產品均相依於同一版本的 .NET Framework，所以必須依下列順序解除安裝：

- SQL Server Express
- Visual Studio 2005
- .NET Framework 2.0

[上端]

### 3.13 Setup.exe 路徑的維護模式提示

如果您在維護模式中安裝新的 SQL Server 2005 元件，系統會提示您 Setup.exe 在 SQL Server 2005 安裝媒體上的位置。在指定位置時，請確定路徑包含 Setup.exe。例如，D:\ 無效，D:\Setup.exe 才有效。

[上端]

### 3.14 安裝命令 Shell 指令碼的疑難排解失敗

當路徑變數包含括號時，安裝命令 Shell 指令碼會產生 Windows 指令碼錯誤。錯誤產生的原因是因為命令 Shell 指令碼不支援路徑變數中的括號。在 64 位元電腦的 Windows (WOW64) 32 位元子系統上將 32 位元元件安裝到 Windows 時，這可能會發生。例如，下列具有路徑值 C:\Program Files (x86)\ 的指令碼會產生錯誤，這是因為 Shell 指令碼解譯器將延伸 PATH 變數中的括號錯誤解譯為 IF/ELSE 陳述式的一部份。

IF "%SOME_PATH%" == "" (

SET PATH=%PATH%;%PATH_A%

) ELSE (

SET PATH=%PATH%;%PATH_B%

)

若要解決此問題，可變更指令碼以移除括號。例如：

IF "%SOME_PATH%" == "" set PATH=%PATH%;%PATH_A%

IF NOT "%SOME_PATH%" == "" set PATH=%PATH%;%PATH_B%

或者從路徑移除包含括號的 SQL 項目。

[上端]

# 4.0 其他資訊

### 4.1 服務帳戶及網路通訊協定

對於 SQL Server Express，本機系統帳戶是網路服務帳戶。

SQL Server Express 會在本機具名管道和共用記憶體上進行接聽。如果採用預設安裝，則無法遠端連接到 SQL Server Express。您將需要啟用 TCP/IP，並檢查是否已啟用防火牆。

#### 若要啟用 TCP/IP：

1. 在 [開始] 功能表上，選擇 [所有程式]，指向 [Microsoft SQL Server 2005]，指向 [組態工具]，然後按一下 [SQL Server 組態管理員]。
   或者，您也可以用滑鼠右鍵按一下 [我的電腦] 並選擇 [管理]，開啟 [電腦管理員]。在 [電腦管理] 中，依序展開 [服務及應用程式] 和 [SQL Server 組態管理員]。
2. 展開 [SQL Server 2005 網路組態]，然後按一下 [InstanceName 的通訊協定]。
3. 在通訊協定清單中，以滑鼠右鍵按一下要啟用的通訊協定，然後按一下 [啟用]。
   通訊協定的圖示將會變更，表示通訊協定已經啟用。

#### 若要啟用防火牆：

1. 依序按一下 [開始] 和 [控制台]，再按一下 [網路連接]。
2. 在左邊的導覽列中按一下 [變更 Windows 防火牆設定]。
3. 在 [例外狀況] 索引標籤的 [程式和服務] 方塊中，您可能會看到清單中有 SQL?Server，但沒有將它選取為例外狀況。如果您選取這個核取方塊，Windows 將會開啟 1433 通訊埠來接收 TCP 要求。另外，如果您在清單中沒有看到 SQL Server，請執行下列動作：
   1. 按一下 [加入程式]。
   2. 按一下 [瀏覽]。
   3. 導覽至磁碟機:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BINN
   4. 將 sqlservr.exe 檔加入至例外狀況清單中。

[上端]

### 4.2 使用者執行個體功能

SQL Server Express 可讓非管理員使用者複製或移動資料庫 (使用 Xcopy 部署)，而不需要使用 DBCreator 權限。如需詳細資訊，請參閱 Microsoft 網站中《SQL Server Express 線上叢書》的＜非管理員的使用者執行個體＞。

[上端]

### 4.3 WMI 提供者和使用者執行個體功能

動態繁衍的使用者執行個體無法支援 WMI Provider for Server Events。這在父 SQL Server Express 執行個體上應該仍然有效。

[上端]

### 4.4 線上叢書

《SQL Server Express 線上叢書》可以從 Microsoft 網站下載。

注意：
由於 SQL Server Express 是 SQL Server 2005 的限定版，因此《SQL Server Express 線上叢書》的文件集都是以《SQL Server 2005 線上叢書》的內容作為主要依據。

《SQL Server 2005 線上叢書》可以從 Microsoft 網站下載。

Microsoft 會定期針對《SQL Server Express 線上叢書》及《SQL Server 2005 線上叢書》發行可下載的更新。建議安裝這些更新，以便在本機的文件集中維持最新資訊。

[上端]

### 4.5 取得 SQL Server Express 協助

Microsoft 的 SQL Server Express 有四個主要的資訊來源：

- SQL Server Express 文件集及範例
- SQL Server 2005 文件集
- Microsoft Developer Network (MSDN) 及 TechNet 上的 SQL Server 站台
- 其他 Microsoft 網站上的 SQL Server 資訊

您也可以透過 SQL Server 社群 從其他人或直接從 Microsoft 支援取得協助。如需詳細資訊，請參閱《SQL Server Express 線上叢書》的＜取得 SQL Server Express 協助＞。

[上端]

### 4.6 新聞群組支援

如需新聞群組支援，請造訪 Microsoft 網站的 SQL Server Express 新聞群組。請勿使用其他 Microsoft 新聞群組公佈有關 SQL Server Express 的問題。

SQL Server Express 小組發出的最新訊息可以在 SQL Server Express Weblog 上找到。

注意：
僅支援使用英文的新聞群組。

[上端]

### 4.7 提供關於 SQL Server Express 的回函

若要提供關於 SQL Server Express 的建議和錯誤報告：

- 在此 Microsoft 網站傳送關於 SQL Server Express 功能及使用者介面的建議和錯誤報告。
- 使用《SQL Server Express 線上叢書》的回函功能傳送關於文件集的建議及報告錯誤。
- 選擇自動將錯誤報告和功能使用方式資料傳送至 Microsoft 進行分析。

如需詳細資訊，請參閱《SQL Server 線上叢書》的＜提供關於 SQL Server 2005 的回函＞。

[上端]

# 5.0 Database Engine

本小節中的注意事項為 SQL Server 2005 Database Engine 和 Database Engine 特定命令提示字元公用程式的最新項目，也適用於 SQL Server Express。

[上端]

### 5.1 連線可能會在 Windows Server 2003 SP1 上執行時被強制關閉。

如果已開啟 TCP/IP 網路，則與 Windows Server 2003 Service Pack 1 上執行之 SQL Server Express Database Engine 執行個體間的用戶端連接可能會失敗，錯誤如下：「ProviderNum: 7, Error: 10054, ErrorMessage: 遠端伺服器強制關閉了現有連接。」

如果在測試延展性時進行了多次用戶端連接嘗試，則可能發生此錯誤。若要解決此問題，請使用 regedit.exe 公用程式，以 00000000 值資料將名稱為 SynAttackProtect 的新 DWORD 值加入至登錄機碼 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\。

安全性注意事項：
設定此登錄機碼可能會公開伺服器，使其受到 SYN Flood 阻斷服務攻擊。請在完成測試後移除此登錄值。

注意：
錯誤地編輯登錄會導致嚴重問題，可能需要您重新安裝作業系統。Microsoft 無法保證可以解決錯誤編輯登錄所產生的問題。編輯登錄之前，請備份所有有用的資料。如需有關如何備份、還原及編輯登錄的詳細資訊，請參閱 Microsoft 知識庫文件 256986。

[上端]

### 5.2 Secure Service Broker 對話需要資料庫主要金鑰

《SQL Server 2005 線上叢書》做出錯誤的陳述，也就是，當使用對話安全性的交談跨越多個資料庫時，SQL Server 會建立使用資料庫主要金鑰加密的工作階段金鑰。實際上，對於使用對話安全性的所有交談，都會使用資料庫的主要金鑰加密工作階段金鑰。如果資料庫主要金鑰無法使用，交談的訊息會保留在 transmission_queue 中並包含錯誤，直到建立資料庫主要金鑰或交談逾時為止。請使用 `ENCRYPTION = OFF` 參數建立未加密的對話，或使用下列命令建立資料庫主要金鑰：

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>'

[上端]

### 5.3 Common Language Runtime 使用者自訂類型只能有一個序列化

位元組排序之使用者自訂類型 (UDT) 物件的每個執行個體只能有一個序列化表示。如果序列化或解除序列化常式辨識出特定物件的一個以上表示，您可能會在下列幾種情況下看到錯誤：

- 驗證位元組排序的 UDT 通過 RPC 期間，UDT 驗證會執行 UDT 的解除序列化/重新序列化，並要求產生的位元組與原始位元組完全相同。如果驗證失敗，您會看到下列錯誤：「System.Data.SqlClient.SqlException，內送 TDS RPC 通訊協定資料流不正確。參數 1 ("<ParameterName>")：提供的值不是資料類型 <TypeName> 的有效執行個體。請檢查無效值的來源資料。」
- 在 DBCC 期間，儲存於位元組排序之 UDT 資料行中的位元組必須等於 UDT 值的計算序列化。如果不相等，DBCC CHECKTABLE 常式會報告一致性錯誤。

[上端]

### 5.4 網路連接未由安裝程式啟用

為了加強安全性，SQL Server Express 會針對某些新的安裝停用網路連接。如果您使用 SQL Server Enterprise、Standard 或 Workgroup Edition，或者，如果有先前安裝的 SQL Server，則不停用使用 TCP/IP 網路連接。除非有先前安裝的 SQL Server，否則 Named Pipes 連接只適用於本機連接。針對所有安裝，必須啟用共用記憶體通訊協定，才能對伺服器進行本機連接。SQL Browser 服務可能會停止，視安裝狀況和安裝選項而定。

[上端]

### 5.5 關於包含使用者自訂類型之組件的考量

下列限制適用於包含使用者自訂類型的 Common Language Runtime (CLR) 組件。

##### Common Language Runtime 使用者自訂類型只能有一個序列化

位元組排序之使用者自訂類型物件只能有一個序列化表示。如果序列化或解除序列化常式辨識出特定物件的一個以上表示，您可能會在下列幾種情況下看到錯誤：

- 在驗證通過 RPC 的位元組排序之使用者自訂類型時，使用者自訂類型驗證會執行使用者自訂類型的解除序列化/重新序列化，並要求產生的位元組必須與原始位元組完全相同。如果驗證失敗，您會看到下列錯誤：「System.Data.SqlClient.SqlException，內送 TDS RPC 通訊協定資料流不正確。參數 1 ("<ParameterName>")：提供的值不是資料類型 <TypeName> 的有效執行個體。請檢查無效值的來源資料。」
- 在 DBCC CHECKTABLE 期間，位元組排序之使用者自訂類型資料行中儲存的位元組必須等於 UDT 值的計算序列化。如果不相等，DBCC CHECKTABLE 常式會報告一致性錯誤。

##### 更新保存使用者自訂類型類別之組件的更新限制

ALTER ASSEMBLY 可用來以下列方式更新 CLR 使用者自訂類型：

- 修改使用者自訂類型類別的公用方法 (只要簽章或屬性未變更)。
- 加入新的公用方法。
- 以任何方式修改私用方法。

自然序列化之使用者自訂類型 (包括資料成員或基底類別) 中包含的欄位都無法使用 ALTER ASSEMBLY 加以變更。其他所有的變更也不受支援。

[上端]

### 5.6 SQL Server 不保證更新組件時的資料一致性

如果新的組件版本會影響資料表、索引或其他永續性站台中的現有資料，則在 WITH UNCHECKED DATA 未加以指定時，SQL Server 會嘗試避免 ALTER ASSEMBLY 執行。然而，當 Common Language Runtime (CLR) 組件已更新時，SQL Server 不保證計算資料行、索引、索引檢視或陳述式會與基礎常式及類型一致。必須小心執行 ALTER ASSEMBLY，以確定運算式結果與組件中儲存的該運算式值之間沒有不符的情形。

[上端]

### 5.7 磁碟區陰影複製服務之自動復原陰影複製功能的考量

磁碟區陰影複製服務 (VSS) 之自動復原陰影複製功能有下列限制。

#### 多重保存自動復原陰影複製

在 Windows Server 2003 Service Pack 1 (SP1) 和更新的版本上，您只能建立單一保存自動復原陰影複製。若要建立其他陰影複製，您必須先套用＜知識庫文件891957＞中描述的更新。

注意：
如果您尚未套用這項更新，您可以建立新的保存自動復原陰影複製，方法如下：先刪除現有的保存自動復原陰影複製，然後建立新的保存自動復原陰影複製。

#### 自動復原陰影複製和全文檢索目錄

自動復原陰影複製功能不支援全文檢索目錄。當建立自動復原陰影複製時，陰影複製上之資料庫中的任何全文檢索目錄都是以離線方式取得。從陰影複製附加資料庫時，全文檢索目錄仍會永久保持離線。所有其他資料在附加的資料庫中仍保持可用狀態。

直接從自動復原陰影複製附加內含全文檢索目錄的資料庫時，附加作業會傳回下列錯誤訊息：

    Server: Msg 7608, Level 17, State 1, Line 1
    An unknown full-text failure (0xc000000d) occurred during "Mounting a full-text catalog".

如果您不需要直接從陰影複製附加資料庫，您可以利用下列方法來避免這個問題：從陰影複製將資料庫檔案和全文檢索目錄複製至一般磁碟機代號型磁碟區，然後從該位置附加資料庫。只要附加命令指定複製的全文檢索檔案的正確位置，全文檢索目錄便能運作。

[上端]

### 5.8 Common Language Runtime 組件的註冊限制

SQL Server 不允許註冊具有相同名稱、文化特性及公開金鑰之不同版本的組件。如果您計劃從早於九月份 CTP 版本的 SQL Server Express 版本中保留資料庫，在安裝此版本之前，您必須捨棄所有具有多重註冊的組件執行個體，而只保留其中一個。

[上端]

### 5.9 建立 EXTERNAL_ACCESS 及 UNSAFE 組件

若要在 SQL Server 中建立 EXTERNAL_ACCESS 或 UNSAFE 組件，或要載入組件，必須符合下列兩個條件之一：

- 該組件是簽署的強式名稱或是利用憑證簽署的驗證碼。該強式名稱 (或憑證) 在 SQL Server 中建立為非對稱金鑰 (或憑證)，且有對應的登入，該登入具有 EXTERNAL ACCESS ASSEMBLY 權限 (適用於外部存取組件) 或 UNSAFE ASSEMBLY 權限 (適用於不安全的組件)。
- 資料庫擁有者 (DBO) 具有 EXTERNAL ACCESS ASSEMBLY (適用於 EXTERNAL ACCESS 組件) 或 UNSAFE ASSEMBLY (適用於 UNSAFE 組件) 權限，且資料庫的 TRUSTWORTHY 資料庫屬性設為 ON。

我們建議，只有在伺服器處理序中執行 Common Language Runtime (CLR) 程式碼時，才不要將資料庫上的 TRUSTWORTHY 屬性設為 ON。否則，我們建議您從主要資料庫中的組件檔案建立非對稱金鑰。然後必須建立對應至此非對稱金鑰的登入，且必須授與 EXTERNAL ACCESS ASSEMBLY 或 UNSAFE ASSEMBLY 權限給該登入。

下列 Transact-SQL 陳述式執行一些步驟，這些步驟是建立非對稱金鑰、將登入對應至該金鑰，然後授與 EXTERNAL_ACCESS ASSEMBLY 權限給該登入的必要步驟。您必須先執行下列 Transact-SQL 陳述式，再執行 CREATE ASSEMBLY 陳述式。

    USE master
    GO

    CREATE ASYMMETRIC KEY HelloWorldKey FROM EXECUTABLE FILE = 'C:\HelloWorld.dll'
    CREATE LOGIN HelloWorldLogin FROM ASYMMETRIC KEY HelloWorldKey
    GRANT EXTERNAL ACCESS ASSEMBLY TO HelloWorldLogin
    GO

[上端]

### 5.10 與中繼資料可見度限制及動態管理檢視的應用程式角色相容性

以應用程式角色執行的程式行為可能會變更，這是因為 SQL Server Express 預設會限制 master 資料庫中繼資料對於應用程式角色的可見性。暫時的解決方法，就是啟用追蹤旗標 #4616。如需詳細資訊，請參閱＜知識庫文件906549＞。

[上端]

### 5.11 SUPPLEMENTAL_LOGGING 資料庫選項未實作

此版本的 SQL Server 中未實作 SUPPLEMENTAL_LOGGING 資料庫選項。可以設定這個選項，但這個選項無效。

[上端]

### 5.12 sys.dm_clr_loaded_assemblies 顯示無法載入的組件

因故無法載入伺服器位址空間中的組件，仍會出現在 sys.dm_clr_loaded_assemblies 動態管理檢視中。

[上端]

### 5.13 XQuery 變更

下列關於 SQL Server Express XQuery 實作的各方面未載明於線上叢書中：

- 由 CDATA 區段產生的字元不會被視為是空白字元。例如，`select cast(''as xml).query('<a> <![CDATA[ ]]> {"abc"}</a>')` 會傳回 `<a> abc</a>`。
- 支援建構空白元素及屬性。
- 命名空間前置詞 xmlns 會識別命名空間宣告屬性，並且無法在 XQuery 運算式中重新宣告。XQuery 規格需要此行為。
- 以來源運算式 () 使用 'for' 會產生靜態錯誤。
- 在使用 xml 資料類型上 query() 方法所建構的 XML 文件中，CDATA 區段中的歸位字元會成為換行字元。換行字元會取代先前的歸位字元實體參考 (&#x0d;)， 以便與文字 XML 剖析一致。
- 包含 local-name() 及 namespace-uri() 的 Transact-SQL 使用者自訂函數相當有決定性。

[上端]

### 5.14 從 xsd:dateTime 的轉換不如說明文件所述那樣具有限制性

不包含時間與日期分隔符號 T 或時區之 xs:dateTime 值的字串表示可以轉換為 value() 方法的 SQL datetime 類型，如下列範例所示：

    declare @aaa xml
    set @aaa = '<AAA MyDate="2005/1/1 00:00:00"/>'
    select @aaa.value('(//AAA)[1]/@MyDate', 'datetime')

[上端]

### 5.15 XML 結構描述支援

下列關於 XML 結構描述之 SQL Server 2005 支援的各方面未載明於《SQL Server 2005 線上叢書》中：

- Reporting Services (RDL) 的 XML 結構描述可以載入 XML 結構描述集合。
- 包含具有三個以上小數點後數字之第二個值的 xs:dateTime 及 xs:time 類型值不會傳回錯誤。這些值會四捨五入。
- 在基底類型為 `fixed="true"` 時，如果 maxInclusive 在衍生類型中重複定義，則 XML 結構描述會被拒絕。
- 在限制 xs:dateTime、xs:data 及 xs:time 資料類型的衍生類型中，minInclusive、minExclusive、maxInclusive 及 maxExclusive Facet 中的尾端空白會被忽略。

[上端]

### 5.16 RC4 加密不應使用

請勿使用 RC4 加密來保護 SQL Server 2005 中的資料。請改為使用 AES 256 或 Triple DES 等區塊加密。

[上端]

# 6.0 複寫

本小節中的附註是複寫的最新項目。

[上端]

### 複寫預設為停用

Microsoft SQL Server 2005 Express Edition 可做為所有複寫類型的訂閱者，但是複寫在此版本中預設為不安裝。

#### 若要安裝複寫元件：

1. 在 [功能選擇] 頁上，展開 [Database Services]。
2. 按一下 [複寫]，然後按一下 [整個功能將會安裝至本機硬碟]。

#### 若要安裝連接元件及「複寫管理物件 (RMO)」：

- 在 [功能選擇] 頁上，按一下 [用戶端元件]，然後按一下 [整個功能將會安裝至本機硬碟]。

[上端]