2010年3月27日 星期六

SQL DB Schema 的比對

最近要比對兩個不同環境的 DB Schema
但兩邊的 Script 不盡相同,而且 Table 的順序可能不會相同
所以用類似 UltraEdit 的文字比對功能來比對,可能很困難
若一個一個比對,花的時間可能不少

其實是有現成的工具

因為此次我只是比對資料表的差異性
所以,我用的方法如下:

  1. 把兩個要比對的 Script 在同一台 SQL Server 上各自建成一個資料庫
  2. 重新產生 Script,每一個 Table 產生一個 .sql 檔案。
    產生指令碼之前,先將 "包含描述性標頭", "編寫 USE DATABASE 的指令碼", "編寫預設值的指令碼" 等選項設成 false。
  3. 使用 WinMerge 這套軟體做比對,因為它可以比對兩個目錄中,相同檔名的差異性,而且可以將比對結果匯成 HTML 格式的檔案。

※上述的方式有一個缺點,就是沒有比對到預設值。
等以後有空時,再使用現成工具,看看比對的效果如何。

沒有留言: