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