2009-08-24 59 views
3

我想知道是否有辦法自動追加到腳本文件所有的變化,我正在對我的專欄,表格,關係等...在Management Studio中創建CHANGE腳本?

事情是我做了很多不同的更改一個測試數據庫,當我將測試數據庫移動到生產時應用這個更改腳本...因此保留生產數據,但應用所有模式和對象更改。

有沒有簡單的方法來做到這一點?它是否也可以遷移數據庫圖表更改?

我已經看到了你怎麼每次我做了改變創建更改腳本,但這就意味着我必須複製並粘貼到一個主文件。其實很簡單!

我只是想知道我是否錯過了什麼?

回答

6

不要使用UI對測試服務器進行更改。編寫腳本並將它們保存在源代碼管理下。您可以從實時數據的備份開始測試腳本,並且可以調整yoru腳本,直到它們達到預期結果。然後您可以檢查腳本以供參考,並稍後將其應用到實時服務器上。看到這篇文章Version Control and Your Database

BTW,檢查出SSMS toolpack,我認爲它可能做你想做的(我不知道)。我的建議是:架構的版本,使用明確創建/保存的腳本,使用源代碼控制。

+0

謝謝,我終於用VS 2008數據庫版去了 – 2009-11-09 10:17:42

0

無法在SSMS中直接生成「delta」腳本。

但是,如果每次發佈更改時,都使用SQL Server Database Publishing Wizard將整個數據庫(包括數據)編寫爲SQL,您應該能夠提取版本之間的差異並獲得您的增量。

如果錢是沒有對象,你可以購買Visual Studio團隊系統數據庫架構師版,並使用其夢幻般的數據庫比較工具來生成和版本控制正是你想要的diff文件。

0

我們在那裏時,開發商獲取與變化,然後他們劇本出來,並進行檢查的過程它進入Subversion。在Subversion中,我們有一個Tables,Stored Procs,Data等文件夾。它們將它們編寫出來以便重複使用(即,如果已經存在,則不要插入新數據。)無論如何,這對於保持重要數據庫中給定對象的更改歷史記錄。

在過去,我們只是進入每一個我們想出來的腳本到一個文本文件(即FileListV102.txt)的文件。當我們準備發佈一個版本時,我們會對所有文件(當時的VSS)做「最新」。然後,我們有一個簡單的實用程序,它將讀取「文件列表」文件並依次打開每個文件將它們連接成一個輸出文件。這很容易編碼。

我們超出了這個範圍,現在我們有一個發佈管理工具(可以找到here,並將於9月中旬發售),該工具將獲取所有文件並創建一個大的SQL腳本文件。它是按照您希望基於文件夾名稱的順序執行的 - 因此,「Tables」文件夾中找到的文件在「Data」文件夾中的文件之前完成,等等

無論哪種方式,一旦你完成,你有一個大的SQL腳本文件,然後你可以應用到一個新的生產副本,這就是你測試。

0

我們一直在使用一種叫做Kal Admin相對較新的軟件。 它具有變更管理功能,可以非常輕鬆地將選定的變更分發給其他數據庫。我們曾經通過比較兩個數據庫來做到這一點,但它不能滿足我們對變更追蹤的需求。

BTW Kal Admin也具有元數據和數據比較功能。

相關問題