如何从数据库中的表中读取数据并插入到另一个数据库中?

时间:2014-04-07 07:41:18

标签: c# sql sql-server sql-server-2008-r2

我想创建一个Windows服务,用于从一个数据库读取数据,然后将数据插入另一个数据库。我怎么能这样做?

我可以在没有Windows服务或任何其他程序的sql中使用此存储过程读取和复制数据吗?

我的数据每天都在变化,我需要在更改数据时更新我的​​数据库,我可以运行带有计划的存储过程吗?

如果我能做到,那么我的数据会替换为重复吗?

我想保存所有数据并且不想替换或复制它

4 个答案:

答案 0 :(得分:1)

您正在寻找的是主从数据库架构。

此体系结构将一个数据库的数据复制到另一个数据库。 请阅读此处了解更多信息。您将在Master DB中执行的所有CRUD操作都将复制到Slave DB。

http://en.wikipedia.org/wiki/Master/slave_(technology)

答案 1 :(得分:0)

进行此类复制有不同的技巧。 1.数据库复制。 2.触发器可以将特定更改复制到另一个数据库。

答案 2 :(得分:0)

我假设你使用sql server(你没有写它,但对c#开发人员来说很自然)

  1. 是的,可以创建一个Windows服务来同步2个不同的数据库。 假设您在两个数据库中都有相同的表,您只需将数据从一个数据库读入数据表,然后将其发送到另一个数据库(可以将数据表作为存储过程参数发送)。
  2. 但是,可能有更好的方法来处理此问题(例如复制)。

    1. 是的,可以在sql server上创建一个可以运行存储过程的预定作业。

    2. 由您来决定是要复制数据还是替换数据。这取决于你要编写的sql语句。

答案 3 :(得分:0)

您也可以使用SSIS包进行操作,这非常容易使用。

如果使用此选项,则需要提供源数据库和目标数据库conncetionstring。

您还需要将源表的克隆表放入目标数据库中。

然后你需要创建一个sql作业,它将在第一步调用SSIS包,第二步你必须调用创建的过程,这些过程将在进程完成后从目标数据库的克隆表中获取记录然后截断克隆表。

那样的 您总是有新记录来更新现有记录。

如果您需要更多说明如何设置作业和SSIS包,请告诉我。

此外,当数据库位于不同的服务器上时,您可以使用此选项。

问候,
Vishal Bagdai