2011-07-18 206 views
0

其實我想將一個大數據集遷移到另一個已經有一些數據的數據庫。數據模式在兩個數據庫中都是相同的。情景是我的客戶端已經有了運行在生產環境中的應用程序,他給了我一些新的實現它的需求。在實施之後,他希望在臨時生產服務器上測試2個位置上接受測試的新要求。這樣我就可以將現有的數據庫連接到新的生產服務器。現在我想編寫一個數據庫腳本,用於在驗收測試之前和之後遷移位置數據。我的問題是我的表的票證ID具有身份,並且兩個數據服務器上運行的應用程序都會插入相同的TicketID。現在,當我遷移數據時,主鍵有衝突。父表的模式如下。遷移SQL數據庫

TicketID, Identity(1,1) int 
LocationID int 
Problem varchar(500) 
IssueDate DateTime 

另一個問題是,票務ID是在顧客收據和客戶端打印不想改票號

請給我建議這個問題的解決方案。

一個解決方案是,添加一列OldTicketID,但爲此我需要更改我的應用程序代碼,我不想改變那裏有很多子表。

+0

你甚至不說你的DBMS是什麼。我假設了Microsoft SQL Server(用於「Identity」位)。如果它錯了,你可以自己改正。 –

回答

0

您可以更改標識列以僅生成舊數據集(標識(1,2))上的奇數和新數據集(標識(種子,2))上的偶數。

種子應設置爲當前生產系統中最高的ticketid,因此不會與id發生任何衝突。