共用方式為


RDA 限制

MicrosoftSQL Server Compact 3.5 中的遠端資料存取 (RDA) 在下列區域有所限制:

  • 區分大小寫。從 SQL Server Compact 3.5 Service Pack 1 版本開始,SQL Server Compact 就可支援在資料庫層級上設定區分大小寫的定序。物件名稱 (如資料表名稱、語言關鍵字、函數和檢視表) 在 SQL Server Compact 資料庫內不會被視為區分大小寫,即使定序可區分大小寫亦然。

    在 SQL Server Compact 資料庫中處理物件的方式和在 SQL Server 資料庫中不同。例如,MYTABLE 和 mytable 這兩個資料表在區分大小寫的 SQL Server 資料庫中會被視為不同的物件,在 SQL Server Compact 資料庫中,相同的資料表名稱會造成命名衝突。相反地,MYVALUE 和 myvalue 這兩個值在 SQL Server Compact 中不再造成主索引鍵違規,因為它們被視為不同的值, 但在區分大小寫的 SQL Server 資料庫中,這兩個值卻不會造成違規。 

  • ROWGUID。當使用 RDA 從同樣加入伺服器之複寫的 SQL Server 資料表提取資料時,必須排除具有 ROWGUIDCOL 屬性的系統資料行。依預設,此資料行的名稱是 [RowGuid]

    例如,對於 Pull 方法中的 SQLSelectString 參數,使用 SELECT CompanyName, ContactName FROM Customers,而不要使用 SELECT * FROM Customers。

  • 觸發程序。SQL Server Compact 3.5 不支援觸發程序。但是,觸發程序可以存在於 RDA 提取資料的 SQL Server 資料表中。對於追蹤資料表,SQL Server 觸發程序可以在變更發送回 SQL Server 時執行。您可能必須在觸發程序邏輯中指定 SET NOCOUNT ON。這表示不傳回受影響的資料列數,因為「沒有受影響的資料列」的回應,會造成 RDA Push方法的錯誤。

  • 資料表和資料行。對於追蹤資料表,可用的資料行數是 1017 (1024 減去 7 個系統資料行)。這 7 個系統資料行受到保護,並用於追蹤 RDA 資料表。

  • 計算資料行。如果資料錄集包含計算資料行,則 Pull 方法將會失敗。

  • IDENTITY 資料行。如果使用 IDENTITY 資料行產生唯一性,則 RDA 不會以動態方式管理 IDENTITY 資料行。裝置上之 IDENTITY 資料行的預設起始值為 seed=1 和 increment=1。SQL Server Compact 3.5 可讓您使用 ALTER TABLE 陳述式,修改本機資料庫資料表中的識別值 SEED 和識別值 INCREMENT。此可以讓您以手動方式為每個裝置管理識別範圍。在嘗試插入任何資料到資料表前,您必須先判定最大的 IDENTITY 值,並調整初始值。例如,如果最大 IDENTITY 值判定為 99,則使用 ALTER TABLE Orders ALTER COLUMN OrderId IDENTITY (100,1) 來重設下一個 IDENTITY 值為 100。

結構描述限制

SQL Server Compact 3.5 可以追蹤結果 SQL Server Compact 3.5 資料表的變更。藉由指定適當的追蹤選項,SQL Server Compact 3.5 會追蹤所有對本機 SQL Server Compact 3.5 資料表所執行的插入、更新,以及刪除動作。然後應用程式就可以呼叫 Push 方法,將這些變更傳播回原始的 SQL Server 資料表。

RDA 追蹤 Pull 和 Push 方法使用開放式並行控制。SQL Server 不會將提取的記錄保持鎖定。當應用程式呼叫 Push 時,本機 SQL Server Compact 3.5 資料庫的變更將無條件套用到 SQL Server 資料庫。此會造成其他使用者對 SQL Server 資料庫所做的變更遺失。

當更新的記錄是邏輯的分割,且不易發生衝突時,請使用追蹤 Pull 和 Push 方法。例如,追蹤 Pull 和 Push 方法可能會被用於欄位服務應用程式,以追蹤每個擁有唯一服務電話清單的技術人員。

您可以對使用追蹤 Pull 建立的 SQL Server Compact 3.5 資料表進行下列結構描述變更:

  • 變更識別欄位的種子或遞增值。

  • 加入或卸除 DEFAULT 條件約束。

  • 加入或卸除外部索引鍵。

  • 加入或卸除索引。

  • 卸除資料表。

當追蹤 Pull 仍在處理時,您不能對 SQL Server 資料表進行下列任何一項結構描述變更:

  • 加入、卸除,或重新命名資料行。

  • 重新命名資料表。

  • 卸除主索引鍵。

  • 變更資料類型定義。

若要執行這些 SQL Server 資料表的結構描述變更,則必須卸除 SQL Server Compact 3.5 資料表,並重新提取已變更的 SQL Server 資料表。