sql-server - 如何同时更新和同步数据库表?

标签 sql-server database sql-server-2008 database-design triggers

我需要同步(首先上传到远程数据库,然后下载到移动设备)来自移动设备的远程数据库的数据库表(可能会插入/更新/删除来自多个表的行)。

远程数据库根据上传的同步数据执行其他操作。当同步继续将数据下载到移动设备时,远程数据库仍在执行之前的任务并导致同步失败。类似'关键条件',其中'同步和数据库操作'都希望访问远程数据库。如何解决这个问题?是否可以同步数据库并同时对同一个数据库进行操作?

我使用 Sql server 2008 DB 和 mobilink 同步。

编辑: 我按顺序执行的操作:

1.一部装有使用 mobilink 同步数据的应用程序的 iPhone。

2.SYNC表示上传(从设备到远程数据库),然后下载(从远程数据库到设备)。

3.Remote DB是指Consolidated DB;设备数据库是Ultralite DB。

4.远程数据库有一些触发器会在某些表更新时触发。

5.同步上传完成后,从设备到远程的上传将触发触发器。

6.下一刻,上传完成,下载到设备开始。

7.数据库触发器将在同一时刻触发。

8.现在 DB SYNC(-DOWNLOAD) 和触发器(包含在其中的更新查询)操作之间发生死锁。

9.同步失败,错误提示无法访问某些表。

最佳答案

我在 Google 上做了很多工作!针对这个问题提出了一个简单的(?!)解决方案。 (虽然目前还无法解决确切的问题..我尽力了)。

  1. 跟踪所有进行同步的客户端(用户详细信息类型)。
  2. 创建一个 SQL 作业调度程序,其中包含用户同步时要执行的所有操作。
  3. 每天宣布一个“维护期”,以针对保存的用户/客户端同步详细信息执行 SQL 作业的任务
  4. 每次跟踪客户详细信息的成本较高,但非常必要!
  5. 远程整合数据库仅在维护期后“完全更新”。

任何比这更好的方法将不胜感激!欢迎所有建议!

关于sql-server - 如何同时更新和同步数据库表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23126559/

相关文章:

sql-server - 没有 TRUSTWORTHY ON 的数据库之间的 ServiceBroker 通信

database - 是否可以将 Google App Engine 用作 Android 应用程序的后端数据库?

java - MySQL 连接不适用于 HikariCP

sql-server-2008 - 删除多行上的触发器

sql - 创建与列值出现相关的计算列

java - 插入查询 - executeUpdate 返回 -1

sql-server - 将数据从 MS SQL 表加载到 snappyData

sql-server - SQL Server - 值得为大字符串键建立索引吗?

android - SQLite 数据库不会更新,除非我手动卸载然后安装新的 apk

sql - 从序列sql中获取下一个值