2010-05-16 199 views
2

場景數據庫備份

我想從7個客戶端數據庫備份到1個服務器數據庫。 我不知道數據庫的結構{服務器或客戶端數據庫}。 兩個數據庫都有舊數據。現在我必須讓這個工具爲此做好備份。 並且應該可以備份舊數據[如果對舊數據進行了任何更新。] 請幫助找到解決方案。 1.我該如何處理這個問題。 2.數據庫沒有指定,可能是MS訪問或SQL Server 2005 3.在,我可以實現這個[我想在C#中做的]

請幫我找到解決辦法

回答

0

我我不確定爲什麼你想這樣做 - 如果你只是試圖複製客戶端數據庫(我認爲它是「基於文件」),那麼爲什麼不簡單地將他們的文件的副本作爲更廣泛的一部分備份策略?

如果您編寫備份內容以將所有數據放入基於服務器的RDBMS中,那麼您將不得不考慮如何在以後恢復該信息 - 這可能意味着需要更多的編碼。所以 - 我不認爲這是一個好主意,但如果你確定了,我會開始寫一個類(這將是幾乎抽象的),致力於閱讀客戶數據庫的結構(表格,字段,視圖等)。然後,我會繼承它,爲每個客戶數據庫類型獲取一個特定的類。完成此操作後,可以使用ADO.Net從客戶端數據庫中的表中讀取值,使用該信息填充數據表,然後將該信息寫回基於服務器的數據庫。

我真的不能強調不夠,雖然我不喜歡這個主意 - 它似乎過於複雜,也不會與功能等

好運反正

馬丁

處理
0

這樣做的可行性,對於特定問題的一個子集,一個簡單的答案是爲目標SQL Server(或任何服務器數據庫)創建一個DSN,並在Access中將表導出到DSN。您可以通過Access UI執行此操作,並可以使用DoCmd.TransferDatabase在Access中自動執行此操作。可能有點費力地弄清楚正確的連接字符串,而且還需要對重新命名導出的表進行一些操作,以便數據庫之間不會發生衝突,但這可以通過一些VBA代碼輕鬆處理。

我只發佈這是因爲很多人忽略了Access能力導出到ODBC DSN,這不需要寫入DDL等等。不過,它可能會也可能不會對目標數據類型做出正確的選擇,所以如果足夠好或不足,您將不得不在任何特定情況下查看。