2017-06-07 21 views
0

2年前のWindowsアプリケーション用のデータベースがあるとしましょう。違いがあるため、違いがあります。T-SQLと2つのSQL Serverデータベースを比較する

私はレッドゲート比較ツールのような比較ツールを使いたくありません。新しい列を参照するための最良の方法は何

は、新しいデータベースにあります。

クエリ結果のように:

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

答えて

0

列古いデータベースではなく、新たな、またはデフォルトでいただき、ありがとうございます値、null可能、データ型変更:

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 

新しいデータベース内の列ではなく、古いで:

あなたは、私がこれを必要としてきたので、[NEWDB]クエリ

に、私はこの質問と答えを書いて、Iまして[OldDb]の場所を変更することができますこれに多くの時間を費やしました。

だから私は誰もがこれを簡単に見つけて使いたいと思っています。

関連する問題