Sql-Server

顯示所有表及其列

  • November 28, 2012

有沒有辦法顯示所有表格的佈局以查看它們的列?我正在嘗試查找具有特定列名的表。

我正在使用 Web 應用程序Web Data Administrator

例子:

table1
- column 1
- column 2
table2
- column 1

有沒有辦法獲得這樣的顯示?

這是一個開始,如果我能猜到row你的意思是column

SELECT 
 [table]  = QUOTENAME(OBJECT_SCHEMA_NAME([t.object_id])) +'.'+ QUOTENAME(t.name),
 [column] = c.name
FROM sys.tables AS t
INNER JOIN sys.columns AS c
ON t.[object_id] = c.[object_id]
ORDER BY t.name, c.column_id;

這並不能完全提供想要的輸出,但您的表示層肯定可以——當它循環遍歷所有行時——計算出只在遇到新表時列出一個表。

select case when c_n is not null then '-' else t_n end, c_n 
from (
select t_n,c_n, ROW_NUMBER() over(order by t_n,c_n) rn 
from (
select TABLE_NAME t_n,NULL c_n from INFORMATION_SCHEMA.TABLES 
union 
select table_name,column_name from INFORMATION_SCHEMA.columns
) X
) X
order by rn

引用自:https://dba.stackexchange.com/questions/29398