2015-04-28 87 views
0

中的每個表中。我需要帶來一份技術報告,其中描述了屬於某個數據庫的列的所有表。問題是,需要把這個數據庫中的表格描述爲這個數據庫中表格的順序。以相同的順序顯示不同表中的列的名稱,這些表中的列出現在sql

舉例來說,如果我有一個具有在特定的順序列Column_D,Column_A,COLUMN_M,Column_E的TABLE_1,我應該把報告就這樣

表 - 列

TABLE_1 Column_D

TABLE_1 Column_A

TABLE_1 COLUMN_M

Table_1 Column_E

等等與數據庫中的所有表。

我使用此查詢

select t.name, c.name 
from sys.columns c inner join sys.tables t 
on c.object_id = t.object_id 

的問題是,我得到我想要的信息,只能由列字段組織。

表 - 列

TABLE_1 Column_A

TABLE_1 Column_D

TABLE_1 Column_E

TABLE_1 COLUMN_M

但是,如果我一個where子句添加到查詢

select t.name, c.name 
from sys.columns c inner join sys.tables t 
on c.object_id = t.object_id 
where c.object_id = 123 

我將得到我想要的結果,但僅限於該特定表。

有沒有辦法做我需要的?

回答

1

如果沒有order by子句,那麼您將排序到SQL以基於優化的查詢執行來確定。你可能想:

select t.name, c.name 
from sys.columns c 
inner join sys.tables t 
    on c.object_id = t.object_id 
order by t.name, c.column_id 
1

與你的數據庫名稱替換數據庫名在下面的查詢

select Table_Name, Column_Name 
from DbName.information_schema.columns c 
order by table_name, ordinal_position 
相關問題