SQL语句来打印表名和它们的列名

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE = 'BASE TABLE' 
ORDER BY TABLE_NAME ASC

我使用这段代码来打印数据库的表名。 我想要做的是在每个表格中打印表名和列名。 我可以通过嵌套声明来做到这一点。

此代码正在查询窗口中的SQL Server上运行。

我试过这个

SELECT COL_NAME 
FROM 
    (SELECT TABLE_NAME 
     FROM INFORMATION_SCHEMA.TABLES 
     WHERE TABLE_TYPE = 'BASE TABLE' 
     ORDER BY TABLE_NAME ASC)

有任何想法吗?


这应该做到这一点:

SELECT C.TABLE_NAME, C.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS C
WHERE EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES T 
              WHERE T.TABLE_TYPE='BASE TABLE' AND C.TABLE_NAME=T.TABLE_NAME)
ORDER BY C.TABLE_NAME, C.COLUMN_NAME

在Sqlserver 2005中首先引入了INFORMATION_SCHEMA视图。

这些视图主要用于获取表格名称,列,视图,域等元数据,如表名,列名,列的数据类型等。

每个数据库都包含这些视图。 如果你想检查场景后面发生了什么,你可以通过sp_helptext来检查这些视图的逻辑。 喜欢

sp_helptext INFORMATION_SCHEMA.COLUMNS

通过使用上面的视图,你可以得到你想要的结果。 请检查以下查询。

SELECT T.TABLE_NAME,C.COLUMN_NAME,C.DATA_TYPE
    FROM INFORMATION_SCHEMA.COLUMNS C
    INNER JOIN INFORMATION_SCHEMA.TABLES T ON C.TABLE_NAME = T.TABLE_NAME
        AND C.TABLE_SCHEMA = T.TABLE_SCHEMA
    WHERE T.TABLE_TYPE = 'BASE TABLE'
链接地址: http://www.djcxy.com/p/93841.html

上一篇: SQL statement to print table names and their column names

下一篇: How to get column names of table at runtime in C#?