2013-07-02 106 views
0

我正在對開發數據庫進行一些數據更改,並希望在完成後將更改複製到實時數據庫。可能會有一些新的行,儘管大多數都會有更新的行。即已經存在於活動數據庫中的行。Sql Server將數據從一個數據庫表複製到另一個數據庫

數據庫中有幾個表,我只想從其中幾個數據複製數據。

如果可能,我希望這是可能的,而無需編寫任何腳本,並通過使用Management Studio附帶的工具之一。

我嘗試使用Management Studio中的Generate and Publish Scripts嚮導,並創建了一個腳本來複制我希望複製的表中的所有數據。這裏的問題在於,腳本嘗試插入具有已更新行的Ids的行。所以只有新行被插入。

我想能夠自動生成一個腳本,如果它已經存在,它將更新該行,或者只是插入一個新行,如果它不存在。

是否有一些其他工具或使用Generate and Publish Scripts嚮導的選項可以讓我做到這一點?

+1

不認爲有是一個工具,但你想要做什麼是所謂的UPSERT或合併取決於SQL版本的http:// EN。 wikipedia.org/wiki/Merge_(SQL)這可能是MSSQL的upsert是MSSQL上的「自定義」參見:http://stackoverflow.com/questions/11010511/how-to-upsert-update-and-insert-in- SQL服務器2005 – Drakoumel

回答

0

有一個名爲SQL Compare的程序,可以幫助我實現自己想做的事情,而無需親自編寫任何腳本。非常昂貴,但有試用版。

1

我知道它遲到了,現在應該回答,但分享給仍然面臨同樣問題的其他人。

我也有同樣的情景在我的項目之一,最近,我寫一個存儲過程(參考文獻:Copy changed data in table from source to destination in SQL)來實現它,這將創造「合併」聲明爲每個表複製從源數據庫中的差異針對特定表的數據庫。

要知道更多關於MERGE語句,你可以訪問這個MSDN link

相關問題