2014-08-27 177 views
1

我已經安裝了計算機(SQL2008 EXPRESS),也SQL2008自帶的,我們正在使用的特定軟件對兩個SQL服務器之間複製數據。 我需要做一個服務,運行所有的時間,並在特定的時間從SQL2008 SQL2008 EXPRESS更新不存在的記錄..你能提出一種方法來做到這一點? 目前我得到的最好的東西是在Excel文件中製作本地副本,但是這會導致每年365個Excel文件,我不認爲這是一個好主意:)C#服務於兩個SQL服務器

ps.s.對不起,如果我的英語不好:)

+3

考慮您使用快遞,有可能設置複製與SQL Express作爲用戶:http://technet.microsoft.com/en-US/library/ms165654(v=sql.90).aspx。這將避免您必須自己手動編寫服務,而是依賴專門用於在不同數據庫之間推送數據的內部SQL Server功能。 – SchmitzIT 2014-08-27 11:00:33

+0

我會看看你建議的鏈接,但最有可能的,我需要通過代碼來做到這一點... – zhv89 2014-08-27 11:27:08

回答

0

您不必手工工藝你自己的軟件。有像OpenDbDiff或RedGate dbdiff這樣的第三方工具可以做到這一點。這些工具會生成可應用於目標數據庫的差異化SQL。

+0

是的,我知道有很多免費的工具,在那裏,但對這個項目很特殊,它有手工製作..所以,讓我沒有選擇.. – zhv89 2014-08-27 11:25:06

0

當你提到Excel時,我很困惑。 Excel與將數據從一個SQL數據庫移動到另一個數據庫有什麼關係?

簡短的回答是,如果你需要一個C#的服務,然後寫一個C#的服務,將數據複製直接從一個數據庫到另一個。你試圖解決的問題不是很清楚。

說了這麼多,並與我有限的對問題的理解,這聽起來像你需要的是一個被安排每天運行一次一個SQL作業從一臺服務器的數據複製到另一個。由於它聽起來像是在不同的實例上,所以您只需在源數據庫或目標數據庫上設置鏈接服務器,並將數據推入或拉出到正確的表中。

編輯:

好,因此,如果一個窗口服務要求的場合,這是完全可以接受的。但是,就像我提到的,你應該忘記Excel。如果您沒有其他理由使Excel中存在數據,則不希望從SQL-> Excel-> SQL。

下面是創建一個Windows服務的一些信息: Easiest language for creating a Windows service

下面是在C#中訪問SQL一個簡單的教程:http://www.codeproject.com/Articles/4416/Beginners-guide-to-accessing-SQL-Server-through-C

如果你想要一個更正式的解決方案(閱讀:數據訪問層) ,我會指向Entity Framework。項目的複雜性可能會成爲您是否只想在代碼中執行SQL語句與使用完整DAL進行操作的驅動因素。

+0

那麼,我說excel,因爲這是我能夠創造的唯一備份:)此刻我正在考慮出口到excel,然後導入到其他服務器,但這是一個工作太多..我會盡力解釋更好.. 我有兩臺服務器在同一臺PC Server1 - 。\ Data,Server2。\ MirrorData,現在我的問題是,我不是非常擅長數據庫編程,我不知道使用哪種方法從數據服務器複製(或更新如果存在記錄)信息到鏡像服務器。我所知道的是它必須是一項服務。市場要求 – zhv89 2014-08-27 12:28:48

+0

在上面添加了一些鏈接... – 2014-08-27 13:05:46

+0

感謝您的鏈接,我想我已經明白了,但我不知道如何將數據從。\ Data服務器上的一個表傳輸到。\ MirrorData中的另一個表我應該先填充一個DataTable然後傳輸它,還是應該使用其他方法? – zhv89 2014-08-27 14:06:49