我們需要創建一個用於克隆小型SQL Server數據庫的自動化進程,但在目標數據庫中,所有主鍵都應該與源代碼不同(我們使用UNIQUEIDENTIFIER ids for all主鍵)。我們有成千上萬的數據庫都具有相同的模式,並且需要使用這個「克隆」過程來創建所有非密鑰數據匹配的新數據庫,但是保持了參照完整性。克隆具有所有新主鍵的SQL Server數據庫
有沒有簡單的方法來做到這一點?
更新 - 例如:
每個數據庫具有需要被克隆〜250個事務表。考慮這幾個表和它們之間的關係(每個表都有一個唯一標識符的主鍵= ID)以下簡單的例子:
location
doctor
doctor_location (to doctor.id via doctor_id, to location.id via location_id)
patient
patient_address (to patient.id via patient_id)
patient_medical_history (to patient.id via patient_id)
patient_doctor (to patient.id via patient_id, to doctor.id via doctor_id)
patient_visit (to patient.id via patient_id)
patient_payment (to patient.id via patient_id)
我們需要克隆數據庫的原因是由於辦公室被買斷或更改所有權(由於合作伙伴的變化,這種情況發生得比較頻繁)發生這種情況時,辦公室的稅務和保險信息會發生變化。在法律上,這需要一個全新的公司結構,並且辦公室之間的財務需要完全分開。
但是,大多數辦公室都希望保留所有患者病史,因此他們選擇「克隆」數據庫。新的數據庫將被剝離財務記錄,但所有的患者/醫生數據將被保留。舊數據庫將擁有所有信息直至「克隆」。
需要新的GUID的原因是我們將所有數據庫合併到單個關係數據庫中用於報告目的。由於所有事務表都有GUID,所以這很有效......除了克隆的情況。
到目前爲止,我們唯一的解決方案是將數據庫轉儲到文本文件並搜索並替換GUID。這是非常耗時的,所以希望有一個更好的方法。
你想要帶什麼類型的數據,主要是查找數據?所以你想克隆你的數據庫並克隆所有數據,或者只是查找數據?例如,非關鍵數據是什麼意思? – peter 2011-12-22 20:40:35
查找數據並不重要,因爲它總是相同的,我們可以編寫腳本(並且它有固定的整數鍵)。交易數據是我們主要關心的問題。我會用一個例子來更新q。 – 2011-12-22 20:47:09