在 SQL Server 2008 和 SQL Server 2008 Express 之间进行批量和批处理,无需存储过

本文关键字:2008 Server SQL 存储 批处理 之间 Express | 更新日期: 2023-09-27 17:56:29

我想使用 MS Sync Framework v2.1 从 SQL Server 2008 同步到 SQL Server 2008 Express 客户端。当客户端关闭时,服务器最多可能有几十万行。 由于可能的行数量很大,我想实现批处理和批量导入。

有没有人知道如何处理从服务器到客户端的未知(几行到大量行)同步的情况?

使这更难的一个要求是服务器不能在其上运行存储过程,所以我认为禁止使用SyncOrchestrator/SqlSyncProvider,除非客户端可以使用SqlSyncProvider并且服务器使用另一个不需要存储过程的提供程序?

我尝试了这种方法,将SyncOrchestrator/SqlSyncProvider用于本地提供商,DbServerProvider用于RemoteProvider,但收到了InvalidCastException。这可能吗?

考虑到在服务器上不使用存储过程的限制,是否有更好的选择?

在 SQL Server 2008 和 SQL Server 2008 Express 之间进行批量和批处理,无需存储过

DBServerProvider 是一个较旧的提供程序,其工作方式不同。 您将其与 SyncAgent/SqlCeClientSyncProvider/DbServerSyncProvider 组合一起使用。 这些提供程序是"基于锚点的"。

SyncOrchestrator/SqlSyncProvider/SqlCeSyncProvider组合是较新的组合,并且是"基于知识的"。

较旧的 DbServerProvider OOTB 仅支持客户端数据库的 SQL Compact。 曾经有一个SQLExpressClientSyncProvider,但MS已经将其从下载站点中撤出。

有一些方法可以通过在代码中自己构建 SQLCommands 来摆脱不使用 SqlSyncProvider 的存储过程。 不过,您仍然需要触发器和跟踪表来跟踪更改。