如何从表中选择列名

时间:2018-11-13 16:21:27

标签: sql sql-server tsql

我有包含列和表的表

Name
EmpId
Empname
DeptID
DeptName
Employee
Department

我有INFORMATION_SCHEMA.COLUMNS来获取表名

脚本

我有表名

Select T.Name from  INFORMATION_SCHEMA.COLUMNS I 
INNER JOIN @tbl_columns T 
ON T.name = I.Table_name

我在这里得到表名

输出:

Name
Employee
Department

我需要输出哪个表具有哪个列

Tbl_Name    ColName 
Employee    EmpId
Employee    Empname
Department  DeptID
Department  DeptName

2 个答案:

答案 0 :(得分:1)

您将在您的select中加入列名:

select c.table_name, c.Column_name
from INFORMATION_SCHEMA.COLUMNS c join
     @tbl_columns t
     on t.name = c.Table_name
order by c.table_name, c.Column_name;

请注意,您不包括table_schema,因此可以获取重复项。

答案 1 :(得分:0)

我相信您想通过@tbl_column连接表名和列名。如果可以,我认为您可以使用以下脚本:

SELECT   T2.NAME
        ,C.NAME 
FROM SYS.TABLES T1 
INNER JOIN @tbl_columns T2 ON T1.name = T2.NAME
INNER JOIN (SELECT C2.*,C1.object_id 
            FROM SYS.COLUMNS C1 
            INNER JOIN @tbl_columns C2 ON C1.name = C2.NAME
            ) C ON C.object_id = T1.object_id