簡體   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