2

あるスキーマ バージョンから別のスキーマ バージョンにデータを移行するための一般的なソリューションを提供しようとしています。ソース スキーマの列のデータ型が宛先のデータ型と一致しない場合、問題が発生します。列のデータ型の予備比較を実行して、移行を可能にする前に修正する必要がある列を返すクエリを作成したいと考えています。

私の現在のアプローチは、カタログ間の 's' が一致しないinformation_schema.columns場所からテーブルと列の名前を返すことです。DATA_TYPEただし、直接クエリを実行information_schemaすると、接続のカタログからのみ結果が返されます。

誰かがこのようなクエリを書いたことがありますか?

4

2 に答える 2

3

これを行うには、システムテーブルを直接クエリします。syscolumnsおよびsysobjectsテーブルを調べます。リンクされたサーバー間で参加することもできます

select t1.name as tname,c1.name as cname
from adventureworks.dbo.syscolumns c1
join adventureworks.dbo.sysobjects t1 on c1.id = t1.id 
where t1.type = 'U' 
order by t1.name,c1.colorder
于 2008-09-17T15:26:38.367 に答える
2

私はいつも幸運な立場にあり、Red Gate Schemaを比較してもらい、あなたが求めていることを実行できると思います。2倍の値段で安い!

于 2008-09-17T15:08:28.910 に答える