使用定序 (SQL Server Compact)
定序會根據特定語言和地區設定的規範,指定如何儲存和比較字元資料字串的一些規則。
SQL Server Compact 提供 Windows 定序的支援。如需 SQL Server Compact 中支援的 Windows 定序名稱清單,請參閱<支援的定序 (SQL Server Compact)>。
從 SQL Server Compact 3.5 Service Pack 1 (SP1) 版本開始,SQL Server Compact 就支援區分大小寫的定序。區分大小寫的設定位於資料庫層級。換句話說,資料庫內使用者資料表內的所有字串資料行 (資料類型 nchar、nvarchar和 ntext 的資料行) 所具有的大小寫設定與資料庫層級上指定的設定相同。此外,字串資料行上的索引所具有的大小寫設定也與資料庫層級上指定的設定相同。
物件名稱 (如資料表名稱、語言關鍵字、函數和檢視表) 在 SQL Server Compact 資料庫內不會被視為區分大小寫,即使定序可區分大小寫亦然。這項功能與 SQL Server 不一致,但是這個行為與 SQL 標準一致 (指定資料庫的定序只會用於使用者資料的比較)。
連接到區分大小寫的資料庫
您可以連接到任何區分大小寫的 SQL Server Compact 資料庫,就像是連接到其他任何 SQL Server Compact 資料庫一樣。
從 SQL Server Compact 3.5 SP1 版本開始,SQL Server Compact 會提供新 Boolean 連接字串屬性 "Case Sensitive" 或 "SSCE:Case Sensitive" 的支援,以判斷資料庫定序是否區分大小寫。如果您嘗試連接至現有的 SQL Server Compact 資料庫,而且連接字串中具有 "Case Sensitive" 屬性,SQL Server Compact 3.5 SP1 會忽略這項設定。換句話說,"Case Sensitive" 屬性為資料庫建立期間的選項,當連接至現有資料庫時會予以忽略。 如果當您建立資料庫時並未指定區分大小寫,預設會建立不區分大小寫的資料庫。
Case Sensitive 屬性是 SQL Server Compact 3.5 SP1 導入的一項新功能,在任何舊版中都不支援。
建立區分大小寫的資料庫
SQL Server Compact 支援只透過 API 呼叫,為新的資料庫指定區分大小寫的定序。 只有 SQL Server Compact 3.5 SP1 和更新版本才支援這項功能。
您可以使用新的 Boolean 連接字串屬性 "Case Sensitive" 或 "SSCE:Case Sensitive",以判斷資料庫定序是否區分大小寫。進行原生程式設計時,屬於 DBPROPSET_SSCE_DBINIT 屬性集之一部分的新屬性 DBPROP_SSCE_DBCASESENSITIVE 也會判斷資料庫定序是否區分大小寫。
當您將 Case Sensitive 設定為 true 時,便會在資料庫中重建字串資料行上的索引。
您也可以使用 CREATE DATABASE (SQL Server Compact) 陳述式的 COLLATE (SQL Server Compact) 子句,為新資料庫指定定序。不過,在此案例中,不區分大小寫 (CI) 是唯一支援的選項。
重要
如果您使用區分大小寫的定序來建立資料庫,則任何舊版 SQL Server Compact 都無法開啟該資料庫,包括 SQL Server Compact 3.5 在內。
合併式複寫和區分大小寫的定序
SQL Server 發行者和 SQL Server Compact 訂閱者可支援合併式複寫,不論區分大小寫的設定為何。為了能夠支援回溯相容性,將不會明確封鎖任何案例。
SP1 版的 SQL Server Compact 3.5 可同時針對區分大小寫和不區分大小寫的伺服器資料庫來支援區分大小寫之 SQL Server Compact 資料庫的複寫。下表描述所有可能的案例:
SQL Server Compact 用戶端資料庫區分大小寫 |
SQL Server 資料庫區分大小寫 |
支援 |
---|---|---|
CI (不區分大小寫) |
CI |
是 |
CI |
CS (區分大小寫) |
是 |
CS |
CS |
是 |
CS |
CI |
是 |
如需有關合併式複寫的詳細資訊,請參閱<使用合併式複寫>。如需有關如何使用 Replication 物件來建立區分大小寫之資料庫的詳細資訊,請參閱<如何:使用 Replication 物件建立資料庫 (以程式設計方式)>。