0

我有 3 个表Tbl1Tbl2Tbl3

Tbl3 的结构使得 Tbl3 中的大多数列都存在于Tbl2 + Tbl1.

我不知道哪些列匹配,哪些不匹配。

我想从Tbl1Tbl2向插入数据Tbl3

有没有办法确定与 Tbl3 匹配的列名,然后从 Tbl1 和 Tbl2 插入数据?

可能的表结构如下:

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

Tbl2 ---> 列 79 | 专栏80 | 第 81 列 |.... 第 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 回答