iT邦幫忙

0

有什麼工具可以自動比對同一個SqlServer裡的各個資料庫的差異

player 2013-06-27 17:45:5011210 瀏覽

需要能比對
1.Table結構
2.View
3.預存程序與預存函數

player iT邦大師 1 級 ‧ 2013-07-11 03:04:21 檢舉
1.把DB整個輸出成指令碼?
2.再用WinDiff去對照?

2 個回答

8
Albert
iT邦高手 1 級 ‧ 2013-06-27 19:22:35
最佳解答

下個 sql 就解決了

SELECT t.name,c.name, c.system_type_id,c.user_type_id,
c.max_length,c.precision,c.scale,c.collation_name,c.is_nullable
FROM sys.tables t
INNER JOIN sys.columns c ON t.object_id=c.object_id
order by t.name,c.name

把兩個不相等的顯示出來就好了

player iT邦大師 1 級 ‧ 2013-06-27 20:59:30 檢舉

你的解法, 好像怪怪的
例如: 在同一台SqlServer 例如有資料庫 A, B, C, D .....
他們都各自有同名的資料表
可是隨著網頁改版, 資料表, View, 預存程序與預存函數
有的資料庫可能太久沒用, 而漏掉沒改到, 資料是放各資料庫彼此無關的資料

所以我需要用最常用的資料庫去比對其它較少在用的資料庫
看那些資料庫需要調整的?

也就是各資料庫的資料表結構, View的結構, 預存程序與預存函數
要都更新到最後的版本

Albert iT邦高手 1 級 ‧ 2013-06-27 21:41:03 檢舉

Albert iT邦高手 1 級 ‧ 2013-06-27 21:42:21 檢舉

albertachen提到:
把兩個不相等的顯示出來就好了

所以我需要用最常用的資料庫去比對其它較少在用的資料庫
看那些資料庫需要調整的?

這不是要去比較
嗎 ?

6
一級屠豬士
iT邦大師 1 級 ‧ 2013-06-27 21:30:34

SQL Server 有 information_schema, 這是標準的 scheam,
中文MSDN的說明:
http://msdn.microsoft.com/zh-tw/library/ms186778.aspx
一些範例:
http://www.mssqltips.com/sqlservertutorial/196/informationschematables/

透過查詢此schema,就可以得到許多你想要的資訊了.

我要發表回答

立即登入回答