繁体   English   中英

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

[英]how to read data from a table in database and insert into another database?

我想创建一个Windows服务来从一个数据库中读取数据,然后将数据插入另一个数据库中。 我该怎么做 ?

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

我的数据每天都在变化,因此我需要在更改数据时更新数据库。我可以按时间表运行存储过程吗?

如果可以,那么我的数据将被替换或重复吗?

我想保存我所有的数据,不想替换或复制它

您正在寻找的是主从数据库体系结构。

这种体系结构会将一个数据库的数据复制到另一个数据库。 在此处阅读更多信息。 您将在主数据库中执行的所有CRUD操作都将复制到从数据库。

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

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

我假设您使用sql server(您没有编写它,但是对于C#开发人员来说是自然的)

  1. 是的,可以创建一个Windows服务来同步2个不同的数据库。 假设两个数据库中都有相同的表,那么您要做的就是将一个数据库中的数据读入数据表,然后将其发送到另一个数据库(可以将数据表作为存储过程参数发送)。

但是,可能有更好的方法来处理此问题(例如复制)。

  1. 是的,可以在sql服务器上创建可以运行存储过程的计划作业。

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

您也可以使用SSIS包来做到这一点,这非常容易使用。

如果使用此选项,则需要提供源数据库和目标数据库的连接字符串。

另外,您还需要将源表的克隆表插入目标数据库。

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

这样您就可以始终拥有新记录来更新现有记录。

让我知道是否需要进一步说明如何设置作业和SSIS包。

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

问候,
维沙尔·巴代(Vishal Bagdai)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM