情景是這樣的。我有一個SQL Server數據庫在線,我正在演示一個應用程序。在開發過程中,我添加了額外的字段,修改的字段類型,更改的密鑰並在本地添加了一些新表。備份和還原SQL Server數據以更改數據庫結構
什麼是最好的方式來更新在線數據庫的新結構,而不會丟失數據?數據庫是SQL Server 2005的一個。
情景是這樣的。我有一個SQL Server數據庫在線,我正在演示一個應用程序。在開發過程中,我添加了額外的字段,修改的字段類型,更改的密鑰並在本地添加了一些新表。備份和還原SQL Server數據以更改數據庫結構
什麼是最好的方式來更新在線數據庫的新結構,而不會丟失數據?數據庫是SQL Server 2005的一個。
下載試用版Red Gate SQL Compare,比較你的兩臺服務器,就完成了。如果你經常這樣做,那麼這個價值400美元就夠了,或者拿到其中的一個捆綁包來更好地促銷。
而我不爲紅門工作,只是一個快樂的客戶!
編寫更新腳本以將您的實時數據庫結構修改爲新結構,並插入所需的任何數據。
您可能會發現有必要使用臨時表來執行此操作。
如果您在測試環境中測試此過程,那麼在運行環境中的腳本之前,這可能是最好的選擇。
根據你做了什麼,你可能能夠脫離alter語句,但從它的聲音(刪除鍵和whatnot),你正在做一些繁重的舉動,可能會使一個小於理想的解決方案。您應該着眼於創建維護計劃,或者更好的是在Visual Studio中創建SQL Server Integration Services項目。您應該能夠使用這些工具將現有數據庫中的數據遷移到新數據庫。
這可能不是回溯性的巨大幫助,但我總是將所有結構化數據庫更改編寫到我的開發數據庫中,然後使用版本號來確定數據庫的當前版本我可以在活動數據庫上運行所需的腳本,因此在新代碼上傳的同時將其重新排列。
這也適用於任何內容更改,例如,如果底層結構中的更改對存儲的內容有影響,您還可以編寫腳本來相應地遷移數據。
複製現有數據庫以複製。
創建另一個副本並將其更改爲新的架構。保存DDL以供重用。
編寫將數據從#1複製到#2的查詢。保存查詢以供重用。
檢查結果。
重複,直到完成。