2017-08-24 21 views
0

有沒有辦法導致SQL Server Management Studio返回查詢結果,其中源表名稱作爲每個結果數據列名稱旁邊的前綴顯示?我只是手動形成並執行大量不同的查詢,這些查詢使用類似命名的列綁定多個表。我這樣做是爲了試圖瞭解一個非常大的,沒有記錄的數據庫的來龍去脈,這些數據庫之間沒有建立關係。例如,表A可能有一個名爲X的列,但相關表B也有一個名爲X的列。我發現這些相似之處,表明了表之間的潛在關係。但是,當我嘗試綁定幾個大表時,如果有多個重複列名的實例,則很難在查詢結果集中辨別我是否正在查看來自表A而不是B的X列。我知道我可以使用AS關鍵字,並在SELECT子句中單獨重新標記我想要的列。如果你這樣說,那可能是我唯一的辦法。然而,我想在學習這個數據庫的同時更快地形成查詢,而不一定使我的查詢非常精細。如果SQL Server結果集可以有更清楚標記的table.column表單列標題,例如:A.X,B.X等,那就太好了。我怎樣才能讓SQL Server 2014顯示如此合格的列標題?提供完全限定的表格。SQL Server 2014查詢結果中的列名稱標題

+0

您可以添加自己的別名,如SELECT c.A,c.B,t.A AS [T.A] FROM c INNER JOIN t blah blah ...只需使用「AS [new column name]」語法。這是一個手動的事情,不是自動的。我知道無法讓SSMS自動爲你做。 – pmbAustin

+0

我正在使用別名。那我正在做。但它們也不會顯示爲標題列名稱。 – ShieldOfSalvation

+0

不幸的是,這只是SQL - 服務器無法做到的事情。我通常做的是(a)從SSMS GUI或系統視圖中獲取列的列表,然後(b)使用具有良好正則表達式能力的文本編輯器生成用於標識列來自哪張表的別名,使用patterna_columna ... –

回答

0

雖然我相信SSMS沒有辦法以真正的自動化方式做你想做的事情,但有一種方法可以用一個智能腳本來完成,它可以在沒有太多挫折的情況下建立你的查詢。我需要做,在過去類似的東西,我用以下的變體:

select 
    quotename(tab.name) + '.' + QUOTENAME(col.name) + ' AS ' + quotename(tab.name + '.' + col.name) 
from sys.columns col 
inner join sys.tables tab on col.object_id = tab.object_id 
where tab.name = '<enter table name here>' 

這會吐出所有領域,正確的格式,引用和別名。稍微調整一下,你應該可以將其餘的查詢添加到這個腳本中。

+0

如果我有更多的時間或更正式的建設我會用你的想法。但我真的只是試圖快速檢查數據庫,並確定哪些列是有意義的綁定,而無需額外的編程或手動步驟。 – ShieldOfSalvation