【问题标题】:Cannot Update/Insert on a replicated table无法在复制表上更新/插入
【发布时间】:2011-10-11 11:57:37
【问题描述】:

我在 SQL Server 上定义了一个表的单向发布。 在订阅者方面(SQL Compact),我需要能够检索表的内容并对其进行修改,但这些修改不得发送回发布者。有时,必须使用发布者的更新版本重新初始化表的内容,删除本地所做的所有修改。我不关心可能出现的任何冲突,因为数据不会被发送回服务器。

问题是我无法更新/插入/删除表中的任何行,除非我将表发布为“双向”,这不是我想要的。尝试更新此表(在客户端)时,出现以下错误:

SSCE_M_READONLY “在执行 RDA 推送时,SQL Server Compact 只能在被推送到 SQL Server 的表上获得只读游标。在尝试推送时,SQL Server 上可能存在锁定冲突。验证SQL Server 上的表是可更新的,然后重试。”

所以基本上,我想要的是:

  • 从服务器获取数据
  • 处理数据(插入/更新/删除)
  • 删除所有修改的行
  • 同步表(从服务器获取“干净”版本)

我不希望在同步时重新下载表的所有内容,但这不是必须的。

【问题讨论】:

  • 你在混合 RDA 和 Merge - 这不会工作

标签: sql-server sql-server-ce replication


【解决方案1】:

复制就是保持发布者和订阅者之间数据的一致性,所以我想说你不想在你的情况下使用它。

设置一个可以定期运行的 SSIS 包怎么样?它将进行查找并插入新行并将现有行重置回发布者为它们提供的任何内容。类似于这里描述的:

http://beingoyen.blogspot.com/2010/03/ssis-how-to-update-instead-of-insert.html

【讨论】:

    猜你喜欢
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多