SQL Server Compact 4.0 的新增功能

本主題描述 SQL Server Compact 4.0 和舊版中提供的新功能,舊版包括 SQL Server Compact 3.5、SQL Server Compact 3.5 Service Pack 1 (SP1) 和 SQL Server Compact 3.5 Service Pack 2 (SP2)。

SQL Server Compact 4.0 的新增功能

MicrosoftSQL Server Compact 4.0 有一組新的功能,包括 SQL Server Compact 4.0 可當做 ASP.NET Web 應用程式與網站之資料庫使用的新案例。SQL Server Compact 4.0 的主要功能包括:

  1. 使用 WebMatrix 和 Visual Studio 2010 Service Pack 1 開發 SQL Server Compact 4.0

    • Premium、Ultimate 和 Professional 版本的 Visual Studio 2010 SP1 可用來針對 SQL Server Compact 4.0 開發 ASP.NET Web 應用程式和 Windows 桌面應用程式。可使用類似伺服器總管、查詢設計工具和 Transact-SQL 編輯器等設計工具來瀏覽資料庫。ASP.NET Web 應用程式專案系統中的設計工具可用來將網頁上的控制項繫結至 SQL Server Compact 中的資料。

      此外,Microsoft Visual Web Developer 2010 SP1 Express 也支援使用 SQL Server Compact 4.0 進行 ASP.NET Web 應用程式開發。Visual Studio 2010 SP1 也支援與 SQL Server Compact 4.0 並存的 SQL Server Compact 3.5 所適用的應用程式開發。

    • WebMatrix 可用來以 SQL Server Compact 4.0 開發 ASP.NET Web 應用程式及管理 SQL Server Compact 資料庫,包括針對 SQL Server Compact 執行 Transact-SQL 查詢。

    • WebMatrix 可用來將 SQL Server Compact 4.0 中的資料和結構描述編寫為較高版本的 SQL Server,而且只需要按一下滑鼠即可將網站移轉到其他 SQL Server 版本。

  2. API 增強功能

    • 與 ADO.NET Entity Framework 4.0 (.NET Framework 4) 整合

      SQL Server Compact 4.0 支援 ADO.NET Entity Framework 的預先編碼程式撰寫模型。此外,當搭配 ADO.NET Entity Framework 4 (隨著 .NET Framework 4 發行的 ADO.NET Entity Framework 版本) 使用時,擁有伺服器產生之索引鍵的資料行 (例如識別或 rowguid) 也可在 SQL Server Compact 4.0 中受到支援。

      注意

      SQL Server Compact 4.0 版本只能搭配隨著 .NET Framework 4 發行的 ADO.NET Entity Framework 4 一起運作。搭配 ADO.NET Entity Framework 3.5 SP1 (隨著 .NET Framework 3.5 SP1 所發行的版本) 使用 SQL Server Compact 4.0 會導致錯誤發生。

    • 適用於 DbConnection.GetSchema 的新 API

      SQL Server Compact 4.0 有新的 API - System.Data.SqlServerCe.SqlCeConnection.GetSchema(),使用它可從 SQL Server Compact 資料庫檔案取得結構描述。此 API 也提供 System.Data.Common.DbConnection.GetSchema 的支援。

    • 適用於 SqlCeConnectionStringBuilder 的新 API

      新的 API - System.Data.SqlServerCe.SqlCeConnectionStringBuilder() 可讓開發人員以程式設計方式為 SQL Server Compact 4.0 建立正確的連接字串,並剖析及重建現有的連接字串。此 API 也提供 System.Data.Common.DbConnectionStringBuilder 的支援。

  3. 新的 Transact-SQL 語法

    如果使用 Order BY 語法進一步隨著 OFFSET & FETCH 的新 Transact-SQL 語法擴充,SQL Server Compact 4.0 就可支援 Transact-SQL 查詢。OFFSET-FETCH 可讓使用者撰寫分頁查詢,並針對資料庫檔案執行。如需詳細資訊,請參閱<ORDER BY 子句 (SQL Server Compact)>。

  4. ASP.NET Web 應用程式和網站的改良

    • 支援 ASP.NET

      SQL Server Compact 4.0 支援 ASP.NET 而不需要任何特定的組態。SQL Server Compact 4.0 不再需要 SQLServerCompactEditionUnderWebHosting 旗標,所以已經將它移除。

    • 減少虛擬記憶體

      SQL Server Compact 4.0 中已減少每一個 SQL Server Compact 連接所需的虛擬記憶體用量。可見的差異如下:如果應用程式嘗試在 SQL Server Compact 3.5 SP2 中同時開啟 40 到 50 個連接,將會擲回「虛擬記憶體不足」的例外狀況。但是在 SQL Server Compact 4.0 中,應用程式可以輕鬆開啟與資料庫檔案之間的任何連接數目,最多可高達 256 個連接,而不會用完虛擬記憶體。

    • 中度信任

      ASP.NET 應用程式的主要需求是在中度 (部分) 信任環境中執行,SQL Server Compact 4.0 可支援此環境。

  5. 更可靠、安全及輕鬆的部署

    • 提高可靠性

      SQL Server Compact 4.0 已經過測試及認證,可搭配 ASP.NET Web 應用程式使用及處理入門網站的負載。在有許多並行連接而且對資料庫發出多個要求的情況下,SQL Server Compact 4.0 的效能極為優異。

    • 加密演算法更新

      SQL Server Compact 4.0 支援 SHA 2 加密演算法,此演算法為加密的 SQL Server Compact 資料庫檔案提供更高層級的安全性。

      提示

      舊版 SQL Server Compact 支援的演算法在 SQL Server Compact 4.0 中受到支援,其目的只是為了開啟資料庫檔案,以便將其升級到 SQL Server Compact 4.0。因此,當您使用 SQL Server Compact 4.0 開啟 SQL Server Compact 3.5 資料庫檔案時,必須使用 System.Data.SqlServerCe.SqlCeEngine.Upgrade() API 將 SQL Server Compact 3.5 資料庫檔案升級到 SQL Server Compact 4.0。

    • 安裝程式增強功能

      SQL Server Compact 4.0 安裝程式和安裝作業已經增強,可確保 SQL Server Compact 的 x86 和 x64 元件正確安裝在 64 位元電腦上。如此可確保 SQL Server Compact 4.0 在 64 位元電腦上支援 WOW64 模式與 64 位元原生應用程式,而不會發生任何問題。

      • 在 SQL Server Compact 4.0 中,x86 EXE 將會安裝在 32 位元電腦上,而 x64 MSI 只會安裝在 64 位元電腦上。x64 MSI 會在 64 位元電腦上同時安裝 32 位元和 64 位元的 SQL Server Compact 元件。這項安裝行為變更移除了在 64 位元電腦上安裝 x86 MSI 的需求。

      • 如果是 SQL Server Compact 4.0 的私下部署,私下部署的所有二進位編碼檔案 (32 位元和 64 位元) 都會在 %Program Files%\Microsoft SQL Server Compact Edition\v4.0\Private%Program Files (x86)%\Microsoft SQL Server Compact Edition\v4.0\Private 資料夾中提供。

SQL Server Compact 3.5 Service Pack 2 的新功能

SQL Server Compact 3.5 Service Pack 2 (SP2) 隨附在 SQL Server 2008 R2 和 Visual Studio 2010 中。從 SQL Server Compact 3.5 SP2 版本開始,SQL Server Compact 就提供了下列新功能:

  • Visual Studio 2010 中 Transact-SQL 編輯器的支援。您現在可以使用 Transact-SQL 編輯器,針對 SQL Server Compact 資料庫執行任意文字的 Transact-SQL 查詢。此外,Transact-SQL 編輯器也可讓您針對 SQL Server Compact 資料庫檢視並儲存詳細估計和實際的查詢執行程序表。之前,Transact-SQL 編輯器所提供的這項功能只能透過 SQL Server Management Studio 使用。如需詳細資訊,請參閱<Visual Studio Transact-SQL 編輯器>。

  • 對 SQL Server Compact 資料庫變更追蹤的支援。為了支援資料庫資料表的資料列層級變更追蹤,System.Data.SqlServerCe 命名空間已經加入新的類別和成員。針對資料表啟用追蹤時,追蹤基礎結構會維護有關在資料表上進行之插入、刪除和更新作業的資訊。這項資訊會儲存在加入至追蹤資料表的資料行中以及追蹤基礎結構所維護的系統資料表中。您可以使用這些新類別來設定、啟用與停用資料表的變更追蹤,也可以存取針對資料表所維護的追蹤資料。在許多情況下,您可以使用變更追蹤來提供所需的功能。例如,您可以針對偶爾連接的系統 (OCS) 提供用戶端對伺服器或用戶端對用戶端同步處理的自訂實作。或者,您也可以使用變更追蹤來實作自訂接聽程式應用程式。如需詳細資訊,請參閱使用變更追蹤的建立應用程式 (SQL Server Compact)

  • 新的組件版本控制支援與目錄結構,可讓使用私下部署的 SQL Server Compact 應用程式接收 Hotfix、安全性修補程式和重大更新。如需詳細資訊,請參閱<私下部署與集中部署 (SQL Server Compact)>。

  • 新增 64 位元 ClickOnce 部署的支援。如需詳細資訊,請參閱<部署桌面應用程式>。

  • SQL Server Compact 支援 Windows 7 和 Windows Server 2008 R2。如需所有支援的 Windows 版本清單,請參閱<硬體及軟體需求>。

SQL Server Compact 3.5 Service Pack 1 的新功能

SQL Server Compact 3.5 Service Pack 1 (SP1) 隨附在 SQL Server 2008 和 Visual Studio 2008 SP1 中。從 SQL Server Compact 3.5 SP1 版本開始,SQL Server Compact 就會提供下列新功能:

  • SQL Server Compact 支援 ADO.NETEntity Framework。Entity Framework 可讓您使用網域特有之物件和屬性的格式 (如客戶和客戶地址) 來處理資料,而不需要顧慮這些資料儲存在哪些基礎資料庫資料表和資料行內。

  • ADO.NETEntity Framework 的支援可讓您針對 Entity Framework 物件內容建立彈性且強型別的查詢,其方式是直接從開發環境使用 LINQ 運算式和 LINQ 標準查詢運算子。

  • SQL Server Compact 在資料庫層級上支援有區分大小寫的定序。如需詳細資訊,請參閱<使用定序 (SQL Server Compact)>。

  • 您可以管理儲存於智慧型裝置或桌上型電腦上的 SQL Server Compact 資料庫,其方式是使用 SQL Server 2008 中的 SQL Server Management Studio (SSMS)。

  • SQL Server Compact 在 SQL Server 2008 中提供複寫新資料類型的支援,例如,date、time、datetime2、datetimeoffset, geography 和 geometry。SQL Server 2008 中的新資料類型會對應到 nchar、nvarchar、image 等等。如需有關 SQL Server 2008 中之資料類型的詳細資訊,請參閱《SQL Server 2008 線上叢書》文件集中的<資料類型>。

  • SQL Server Compact 可以原生方式在 64 位元環境執行。受到影響的 MSI 檔案有 SQL Server Compact 64 位元執行階段 (SSCERuntime-ENU.msi) 和 SQL Server Compact 64 位元伺服器工具 (SSCEServerTools-ENU.msi)。32 位元 MSI 的支援並未變更。針對應用程式使用 ClickOnce 部署的開發人員必須同時指定 32 位元和 64 位元下載 URL。如需詳細資訊,請參閱<管理 64 位元資料庫應用程式>。

  • SQL Server Compact 支援使用 Sync Services for ADO.NET 進行 SQL Server 2000、SQL Server 2005 和 SQL Server 2008 資料複寫。Sync Services for ADO.NET 同時適用於桌上型電腦和行動裝置。

  • SQL Server Compact 支援使用合併式複寫和遠端資料存取 (RDA) 進行 SQL Server 2005 和 SQL Server 2008 的資料複寫。

  • SQL Server Compact 包含 SQL Server Compact 與 SQL Server 之間針對合併式複寫的增強型版本相容性。

  • 使用 SQL Server Compact 3.5 SP1 用於設定合併式複寫和 RDA 的伺服器工具可以從 Microsoft 下載中心下載。SQL Server Compact 3.5 SP1 伺服器工具不可與當成 IIS 伺服器之電腦上的舊版伺服器工具並存安裝。SQL Server Compact 3.5 SP1 伺服器工具可以在 SQL Server Compact 3.5 與 SQL Server 2005 或 SQL Server 2008 之間複寫資料。SQL Server Compact 3.5 SP1 伺服器工具也支援 SQL Server 2005 Compact Edition 或 SQL Server 2005 Mobile Edition 與 SQL Server 2005 或 SQL Server 2008 之間的資料複寫。

  • SQL Server Compact 可支援 Windows Server 2008。如需所有支援的 Windows 版本清單,請參閱<硬體及軟體需求>。

SQL Server Compact 3.5 的新增功能

SQL Server Compact 3.5 隨附在 Visual Studio 2008 中。從 SQL Server Compact 3.5 版開始,SQL Server Compact 就會提供以下新的功能:

  • SQL Server Compact 會實作 timestamp (rowversion) 資料類型。rowversion 是一種會公開自動產生之二進位數字的資料類型,這些二進位數字在資料庫中保證是唯一的。這通常當做版本戳記資料表資料列的機制使用。

  • SQL Server Compact 支援桌上型電腦上的本機交易範圍。

  • Visual Studio 2008中的 SQL Server Compact 資料表設計工具已經增強,可以提供用於建立資料表之間之主索引鍵和外部索引鍵關聯性的使用者介面。

  • SQL Server Compact 對於 transact-SQL 陳述式的支援已經擴充如下:

    • 在 FROM 子句中的巢狀查詢

    • CROSS APPLY 及OUTER APPLY

    • CAST

    • TOP

    • SET IDENTITY INSERT

  • SQL Server Compact 支援任何地區設定的 Unicode 字元,包括 Chinese GB 18030 字元。

  • SQL Server Compact 支援使用 Visual C# 2008 Express Edition 和 Visual Basic 2008 Express Edition 來開發桌面應用程式。

  • 在桌上型電腦上,支援 SQL Server Compact 3.5 版與舊版本 (3.1) 並存安裝。如需有關與舊版互動的詳細資訊,請參閱<從舊版升級 (SQL Server Compact)>。

  • 為了支援使用舊版加密演算法的舊作業系統,以及新版較安全的加密,SQL Server Compact 支援回溯相容加密模式。如需回溯相容加密模式的完整清單,請參閱<從舊版升級 (SQL Server Compact)>。

  • SQL Server Compact 支援 LINQ to SQL。LINQ to SQL 為 LINQ 專案的元件。它會提供一種執行階段基礎結構,以便在不用捨棄查詢能力的情況下,將關聯式資料當做物件來管理。它會將 Language-Integrated Query 轉譯成將由 SQL Server Compact 執行的 Transact-SQL,然後將表格式結果轉譯回應用程式開發人員所定義的物件。SQL Server Compact 中並未針對 LINQ to SQL 提供設計工具支援。SqlMetal.exe 公用程式必須用於 SQL Server Compact。SqlMetal 命令列工具會針對 .NET Framework 的 LINQ to SQL 元件產生程式碼和對應。根據預設,SQLMetal 檔位於 %ProgramFiles%\Microsoft SDKs\Windows\vn.nn\bin。如需詳細資訊,請參閱 LINQ to SQL 的程式碼產生。SqlMetal 可用於以下用途:

    • 根據資料庫,產生原始程式碼和對應屬性或對應檔案。

    • 根據資料庫,產生中繼資料庫標記語言 (.dbml) 檔,以便進行自訂。

    • 根據 .dbml 檔,產生程式碼和對應屬性或對應檔案。

其他新功能

SQL Server Compact 4.0 提供下列元件:SSCEVSTools-ENU.msi、SSCEWebTools-ENU.msi、SSCERuntime_x86-ENU.exe 和 SSCERuntime_x64-ENU.exe。

  • Microsoft Visual Studio 2010 SP1 Tools for SQL Server Compact 4.0 (SSCEVSTools-ENU.msi):這個檔案會安裝 Visual Studio 2010 SP1 中的設計工具支援所需的 SQL Server Compact 設計階段元件。設計階段元件包括用來針對 SQL Server Compact 撰寫應用程式的使用者介面、對話方塊和設計階段環境。SQL Server Compact 設計階段元件將會安裝在 %ProgramFiles%\Microsoft Visual Studio 10\Common7\IDE\ 目錄底下。範例則會安裝在 %ProgramFiles%\Microsoft SQL Server Compact Edition\v4.0\Samples 底下。這些元件會繫結至 Visual Studio,而且無法獨立使用。SQL Server Compact 範例和 SQL Server Compact 標頭檔 (用於原生開發) 也是由這個 .msi 檔案所安裝。

  • SQL Server Compact 4.0 Runtime (SSCERuntime_x86-ENU.exe & SSCERuntime_x64-ENU.exe):這個檔案會將適用於桌上型電腦的 SQL Server Compact 執行階段元件安裝到中央資料夾:%ProgramFiles%\Microsoft SQL Server Compact Edition\v4.0。在 Visual Studio 中開發應用程式以及在桌上型電腦上執行 SQL Server Compact 架構應用程式時,都需要使用 SQL Server Compact 桌上型電腦的執行階段元件。SSCERuntime-ENU.msi 也可以從網路下載。

  • SQL Server Compact 4.0 Web 工具 (SSCEWebTools-ENU.msi):這個檔案會在全域組件快取中安裝資料庫指令碼元件。這樣會針對 WebMatrix 提供資料庫移轉功能,將其移轉到較高的 SQL Server SKU。此 MSI 只能搭配 WebMatrix 使用。