Sql-Server
顯示所有表及其列
有沒有辦法顯示所有表格的佈局以查看它們的列?我正在嘗試查找具有特定列名的表。
我正在使用 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