2017-06-07 45 views
0

考慮到我們有一個數據庫用於2年前的Windows應用程序,現在我們在數據庫中改變了很多東西,所以存在差異,我們不知道有什麼區別。比較兩個SQL Server數據庫與T-sql

我不想使用比較工具,如紅門比較工具。

什麼是看到新的列是新數據庫的最佳方式:

查詢結果,如:

New Db Name | Schema | Table Name | Column Name | Default Value | IsNullable | DataType 
NewDb  | dbo | myTable | newColumn | ''   | No   | nvarchar(30) 

感謝您在舊的數據庫

回答

0

列,但不是新的,或默認值,可空和數據類型已更改:

SELECT t1.*,t2.* FROM [OldDb].[INFORMATION_SCHEMA].[COLUMNS] t1 
LEFT JOIN [NewDb].[INFORMATION_SCHEMA].[COLUMNS] t2 
ON t1.COLUMN_NAME= t2.COLUMN_NAME 
WHERE t2.COLUMN_NAME IS NULL 
or 
(t1.Table_name=t2.Table_name 
AND t1.column_name = t2.column_name 
AND (t1.data_type != t2.data_type 
or t1.is_nullable != t2.is_nullable 
or t1.character_maximum_length != t2.character_maximum_length 
or t1.column_default != t2.column_default)) 
ORDER BY t1.COLUMN_NAME 

列在新的數據庫,而不是在舊:

您可以更改[OLDDB]與[NEWDB]查詢

我寫了這個問題和答案的地方,因爲我需要這個,我已經花了這麼多時間。

所以我希望大家可以輕鬆找到並使用它:)。