2012-05-11 68 views
0

我想從開發服務器到產品服務器導出SQL Server 2008 R2中的表[約40]和存儲過程[約120+]。導入表和存儲過程

我創建了一個.sql文件[右鍵單擊SSMS的數據庫上,選擇Tasks -> Generate Scripts],但是當我試圖導入的表和存儲過程轉換成督促服務器[右邊的數據庫中SSMS點擊,New Query然後複製內容]這是給我的錯誤一長串

There is already an object named 'tblMyTable' in the database
Violation of PRIMARY KEY constraint 'PK_MyTable'. Cannot insert duplicate key in object 'dbo.tblMyTable'

任何想法我做錯了什麼或應該做什麼?提前致謝。

+0

您是否試圖將開發數據放入生產環境?否則,你只是想移動DDL差異? – JStead

回答

3

你目前的技術存在的問題是,假設你的目標是一個空的數據庫。因此,它會重新插入所有內容,而不會嘗試合併數據,這會導致重複的主鍵。如果您使用Management Studio,則必須自己完成所有數據合併。

我的建議是第一次看到redgate它不是免費的,但所有的時間,你會保存它將是值得的。您將需要同時使用SQL比較和數據比較(http://www.red-gate.com/products/sql-development/sql-data-compare/)。

另一種替代方法是使用Visual Studio 2010 Premium(如果擁有它)(http://msdn.microsoft.com/en-us/library/aa833435.aspxhttp://msdn.microsoft.com/en-us/library/dd193261.aspx)。這提供了數據比較和模式比較選項。它不如redgate,但我發現它大部分時間都適用。

如果你正在尋找免費的替代品檢查出這個堆棧後https://stackoverflow.com/questions/377388/are-there-any-free-alternatives-to-red-gates-tools-like-sql-compare

+0

你救了我整整一天。謝了哥們。 – mahfuz01

0

如果您要將整個數據庫導入到生產環境中,那麼您可以使用替換到生產數據庫的方式進行恢復。

120個SP和20個表似乎是整個數據庫。因此應該進行替換恢復。