0

Tbl1Tbl2およびの3 つのテーブルがありTbl3ます。

Tbl3 は、Tbl3 のほとんどの列が に存在するような構造を持っていTbl2 + Tbl1ます。

どの列が一致し、どの列が一致しないかわかりません。

Tbl1からとTbl2にデータを挿入したいTbl3

Tbl3 に一致する列名を特定し、Tbl1 と Tbl2 からデータを挿入する方法はありますか?

テーブルの可能な構造は次のようなものです。

Tbl1 ---> 列 1 | 列 2 | 列 3 |.... 列 78

Tbl2 ---> Column79 | コラム80 | Column81 |.... 列 100

Tbl3 ---> 列 1 | 列 2 | 列 3 |.... 列 100 | コラム101 | 列102...列120

4

1 に答える 1

1

から列名を取得できますINFORMATION_SCHEMA.columns。次に、自分でクエリを手動で作成する必要があります。

select tbl3.table_name,
       (case when ct1.TABLE_NAME is not null then 'Y' else 'N' end) as InTbl1,
       (case when ct2.TABLE_NAME is not null then 'Y' else 'N' end) as InTbl2
from INFORMATION_SCHEMA.columns ct3 left outer join
     INFORMATION_SCHEMA.columns ct1
     on ct1.COLUMN_NAME = ct3.COLUMN_NAME and
        ct1.TABLE_NAME = 'tbl1' left outer join
     INFORMATION_SCHEMA.columns ct2
     on ct2.COLUMN_NAME = ct3.COLUMN_NAME and
        ct2.TABLE_NAME = 'tbl2' left outer join
where ct3.TABLE_NAME = 'tbl3';

この情報を使用して、必要なクエリを作成できます。

于 2013-07-24T10:49:05.257 に答える