[翻译]关于SQL CE RDA数据同步的FAQ
Q1. 怎么判斷用 RDA Pulled 的表是否是被跟蹤的?什么是 RDA 訂閱表?
A1. 系統表 __sysRDASubscriptions?保存了 RDA 訂閱的信息。如果表被拉下來時 tracking 選項打開了(就是 RdaTrackOption.TrackingOn 或 RdaTrackOption.TrackingOnWithIndexes),那么這個表就是 RDA 訂閱表。系統表將為它增加一條記錄??傊?#xff0c;如果被拉下來的表在 __sysRDASubscriptions 表中有相應的記錄,那么它就是被跟蹤的。同樣,如果表在被拉下來時沒有打開 tracking 選項,那么這個表將沒有任何 RDA 訂閱信息。
Q2. 為什么我會得到“SSCE_M_RESTRICTEDDDL – 28605 - Internal error: DDL operations are not allowed on system tables. [,,,Table name,,]” 錯誤?這個錯誤表示什么含義?
A2. 當你用 RDA 拉下一個表,同時設置了 Tracking On 選項(或者當一個表是 RDA 訂閱的),對該表的 DDL 操作是受到限制的,所以我們通過從中復制數據的主表來維護架構的完整性。因此,當你嘗試對 RDA 訂閱表執行 DDL 操作時,你將會遇到這個錯誤。
Q3. 如何避免“SSCE_M_TABLEALREADYEXISTS – 28573 - The LocalTableName parameter is already specified. [,,,Table name,,]”錯誤?
A3. 當 RDA 的 Pull 命令參數中,本地表名稱或錯誤表名稱所對應的表已經存在時,就會拋出這個錯誤。有兩種方法可以避免這個錯誤:1)刪除引起錯誤的表 2)改變 RDA Pull 參數。
Q4. 如何避免“Duplicate value cannot be inserted into a unique index. [Table name = __sysRDASubscriptions, Constraint name = c_LocalTableName]”錯誤?
A4. 在正常情況下,這個錯誤是不應該發生的。不過有個缺陷可以導致這個錯誤的出現。關于這個缺陷在 KB Article 920272?中有詳細的討論。如果你正在使用 VS2005 SP1,那么你應該不會再遇到這個錯誤了。如果你確實遇到了這個錯誤,那么把所有訪問數據庫的產品程序文件和客戶應用程序放到同一個目錄下(比較難理解-_-),最好是 \Windows 目錄。
Q5. 如何在執行了 RDA Pull 之后改變 IDENTITY 信息?因為 RDA 不支持標識范圍管理(Identity Range Management)。
A5. 雖然用 RDA 拉下來的表是受到 DDL 約束的,但是改變默認值和標識信息是沒有受到限制的。你可以使用 ALTER TABLE <Table Name> ALTER COLUMN <Column Name> <int | bigint> IDENTITY(<New Seed>, <New Step>) 語句修改標識信息。
原文:RDA Subscriptions
[名詞解釋]
RDA:RemoteDataAccess,SQL Server CE 的遠程數據訪問同步方式。詳細介紹看《SQL Server 2005 Mobile Edition 3.0 中的復制和遠程數據訪問功能的技術對比》
DDL:Data definition language,數據定義語言。
由于本人翻譯水平有限,翻譯得不當的地方,請參考原文,歡迎大家指正!
轉載于:https://www.cnblogs.com/bobli/archive/2007/02/06/sqlce-rda-faq.html
總結
以上是生活随笔為你收集整理的[翻译]关于SQL CE RDA数据同步的FAQ的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opporeno5pro和pro有什么区
- 下一篇: 蚕丝被多少钱啊?