如何同步远程服务器数据库与本地数据库

2024-01-12

我想在期间获取从远程服务器数据库到本地数据库的单个表的所有详细信息
页面加载事件或其他一些好的方法(应该作为后端进程发生)任何人都可以帮助我解决这个问题。

1.在桌面和 Web 应用程序中创建的单个应用程序。
2.当用户在桌面应用程序中注册新客户时,应在应用程序启动时将新客户添加到 Web 应用程序数据库中。

NOTE:

服务器数据库表列可能与本地数据库略有不同。 每次在服务器中添加新用户时,都应在加载 UserPage.aspx 页面时更新本地数据库。

使用工具:ASP.NET、SQL Server 2008。

Eg:数据库名称为sample,表名称为customer

Table Header in Server DB: Cus_id,Cus_name,Cus_address,Cus_email,Cus_mob,Link_Id
Table Headers in Local DB: Cus_id,Cus_name,Cus_address,Cus_email,Cus_mob,Cus_password,Link_Id

这里的Link_id与桌面和 Web 应用程序一样常用..最初在 Web 应用程序中,
当添加新用户时,所有数据都存储在数据库中,除了
Link_id,这是从服务器获取的响应并保存在本地数据库中。

Thanks.


我会推荐这种方法:

  1. 在本地数据库中创建临时表;
  2. 当您需要同步的表发生变化时,在本地数据库中创建一个触发器;
  3. 更新暂存表;
  4. 每隔一段时间将临时表同步到服务器一次(每分钟/小时/天一次,具体取决于您的需求);

    A) 在本地数据库中创建链接数据库连接。创建一个过程,将数据从临时表同步到服务器数据库;

    B) 或者使用 ASP.NET 同步数据库,读取本地数据库并写入服务器数据库。

此解决方案比直接在 ASP.NET 中执行此操作更好,因为当您的服务器出现可用性问题时,这仍然有效。

一个完整的工作示例:

create table x
( id          numeric(18, 0) identity(1,1)  not null
, description nvarchar(1000)                not null
)
go

create table x_staging
( id          numeric(18, 0) not null
, description nvarchar(1000) not null
, synced      bit            not null default 0
)
go

/*
 * create this one on remote server in a database called test

create table remote_table
( id          numeric(18, 0) identity(1,1)  not null
, source_id   numeric(18, 0)                not null
, description nvarchar(1000)                not null
)
go
*/

create trigger x_ori on x
after insert
as
begin
  insert into x_staging
  ( id
  , description
  , synced
  )
  select id
  ,      description
  ,      0 -- false
  from   inserted
  ;
end
go

create procedure sync
as
begin
  declare @id numeric(18,0)
  declare @description nvarchar(1000)
  declare @x_cursor cursor

  set     @x_cursor = cursor for
  select  id
  ,       description
  from    x_staging

  open    @x_cursor
  fetch next
  from  @x_cursor into @id, @description
  while @@fetch_status = 0
  begin
    insert
    into   [REMOTE_SERVER].test.dbo.remote_table
    ( source_id
    , description
    )
    values
    ( @id
    , @description
    )
    ;
    update x_staging
    set    synced = 1
    where  id = @id
    ;
  fetch next
  from @x_cursor into @id, @description
  end

  close @x_cursor
  deallocate @x_cursor
end
go

insert
into   x
( description
)
values
( 'test'
)
go

begin
  exec sync;
end

Calling sync将进行同步。请注意创建remote_table在另一台服务器上并创建数据库链接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何同步远程服务器数据库与本地数据库 的相关文章

  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • JQuery Mobile 与 MVC 的链接

    我正在使用 ASP NET MVC 3 和 Razor UI 设置 JQuery 移动网站 我正在生成我的链接 例如 a href See Group 2 a 假设我从 Home Index 访问它 我遇到的问题是 当我点击链接时 它会出现
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 重载<<的返回值

    include
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • iOS7 Webview导航栏下初始滚动位置

    我有一个网络视图 它在导航栏下方根据需要滚动 但是 当我第一次加载控制器时 Web 视图中加载的页面会滚动 以便它与导航栏的顶部对齐 当我滚动网页视图时 正确的插图出现在顶部以正确放置 只是初始位置不正确 如何使初始位置完全滚动到顶部 包括
  • Terraform,如何在现有资源上运行配置程序?

    我的问题与这个 github 帖子类似 https github com hashicorp terraform issues 745 https github com hashicorp terraform issues 745 这也与我
  • 我可以检查指针是否由 malloc/calloc/realloc 分配吗? [复制]

    这个问题在这里已经有答案了 我想知道是否可以检查传递给函数的指针是否由 malloc calloc realloc 分配 int main struct something o struct something a a malloc siz
  • Spark 如何使用图像格式读取我的图像?

    这可能是一个愚蠢的问题 但我无法弄清楚 Spark 如何使用spark read format image load 争论 导入我的图像后 它给出以下内容 gt gt gt image df select image height imag
  • 一个存储库中的多个微服务

    我对微服务和存储库有疑问 我们是一个小团队 5 人 我们在微服务中创建新项目 我们项目中预期的微服务应用程序在 10 15 个之间 我们正在考虑为所有微服务建立一个存储库 其结构如下 app1 app2 app3 script sh scr
  • 来自控制台的 ActionCable.server.broadcast 始终返回 0

    我试图让 actioncable 工作 但是当我在 Rails 控制台中发送 ActionCable server broadcast discussion asdf true 时 它总是返回 0 我已经在cable yml 中运行并配置了
  • 如何在 macOS 10.14 上重置 HIDIdleTime

    在过去的几天里 我一直在尝试编写一个应用程序来重置IORegistry gt IOHIDSystem gt HIDIdleTime入口 最终目标是防止其他读取该值的应用程序将用户标记为空闲 这不仅与电源管理或防止睡眠有关 假设沙箱已禁用并且
  • 如何判断我的页面选项卡应用程序安装在哪个 Facebook 页面上 [重复]

    这个问题在这里已经有答案了 可能的重复 如何查明哪个主页安装了我的 Facebook Canvas 应用程序 http facebook stackoverflow com questions 5587784 how can i find
  • Python 字节码在 CPython 中运行究竟如何?

    我试图了解 Python 是如何工作的 因为我一直在使用它 据我了解 当您运行 python script py 之类的东西时 脚本会转换为字节码 然后解释器 VM CPython 实际上只是一个 C 程序 读取 python 字节码并相应
  • 提取最后一次出现模式 C# 后的所有字符

    字符串具有以下模式 1 0 0 0 1 0 0 1 1 0 0 2 我正在寻找一个代码 它将读取最后创建的字符串并将最后一个数字增加 1 并将其保存为新字符串 我该怎么做 此致 Magic 如果您的意图是始终获取特定字符之后的最后一个子字符
  • 在 SYB 中匹配更高种类的类型

    一般来说 我想知道是否有一种方法可以编写一个通用折叠来概括应用一个函数forall键入如下 f forall a Data D a gt D a gt b 给定某种数据类型D为此instance Data D a 可能有限制a 具体来说 考
  • 如何使用JavaScript判断目录中是否存在文件?

    如何使用javascript判断目录中是否存在文件 如果它在服务器上 你可以做一个HTTP头 http www w3 org Protocols rfc2616 rfc2616 sec9 html sec9 4通过 Ajax 请求 并查看
  • PhpStorm v2017.3.4 与 Codeception v2.4.0 不兼容

    我正在努力使代码接收与 PhpStorm 一起工作 我已经设置了 CLI 解释器 我还设置了 Codeception 这是 Codeception 的配置 当我从 PhpStorm 运行测试时 我收到以下信息 在左侧 以及右侧的文字 Tes
  • 实现不同类型数组集合的更好方法

    我正在寻找 C 中的半通用数据结构来存储不同整数和浮点类型的数组 在某些情况下 整数是位字段 其中每个位都同等重要 并且不能容忍精度损失 由于 C 类型系统和我对 C 的不熟练 我发现这既困难又混乱 项目 Ethercat周期性数据包到达并
  • 使用 AppCompat 时如何更改 ActionBar 标题字体

    我想将自定义字体应用于 ActionBar 上显示的应用程序标题 以前我没有使用任何支持库和这个解决方案 int titleId getResources getIdentifier action bar title id android
  • 如何创建/在哪里获取多个实例的 Wix Bootstrapper

    我目前正在学习如何使用 WiX 创建 msi 安装程序 但似乎遇到了困难 当我创建一个包含单个环境所需的所有内容的 MSI 时 一切都很好 我有功能和组件 并且可以安装我的 MSI 现在我正处于想要将其转换为 SQL Server 样式安装
  • R 中邻居的空间数据/计算指标

    我有 xBin yBin value 形式的二维空间数据 例如 DT data table x c rep 1 3 rep 2 3 rep 3 3 y rep c 1 2 3 3 value 100 c 1 9 对于每个垃圾箱 我想计算所有
  • 从 JS 文件中获取 Vue

    我对现代前端开发工具还很陌生 我安装了 Nodejs 和 NPM 下载了一些软件包 例如 jquery 并且一切正常 然后我安装了 Webpack 第 2 版 我创建了这个演示配置文件 module exports entry entry
  • 如何实现四个 i8 元素组的高效 _mm256_madd_epi8 点积?

    Intel 提供了一个名为 mm256 madd epi16 的 C 风格函数 基本上 m256i mm256 madd epi16 m256i a m256i b 将 a 和 b 中的压缩有符号 16 位整数相乘 生成中间有符号 32 位
  • 如何同步远程服务器数据库与本地数据库

    我想在期间获取从远程服务器数据库到本地数据库的单个表的所有详细信息页面加载事件或其他一些好的方法 应该作为后端进程发生 任何人都可以帮助我解决这个问题 1 在桌面和 Web 应用程序中创建的单个应用程序 2 当用户在桌面应用程序中注册新客户