2016-06-08 93 views
0

我在SSMS中編寫將連接表的查詢的方法&列給我一個更具可讀性的別名。設置列別名的T-SQL查詢

我實際上使用SSMS,右鍵單擊對象資源管理器中的視圖,然後選擇新視圖。

我從可用表格列表中選擇我需要的表格。

然後,我設置SSMS圖窗格中所需的連接,並從各個表中選擇所需的所有列。

在標準窗格中,我可以看到列,別名和表格列。 沒關係所有的時間在列列中的值是唯一的,例如:

Column = RequestedDeliveryDate 
Alias = (blank) 
Table = Stock Item 

BUT!

一旦列的值不是唯一的,SSMS分配它自己的別名,例如:

Column = AddressLine1 
Alias = Alias1 
Table = Customer 

Column = AddressLine1 
Alias = Alias2 
Table = Supplier 

這些都是我負責的相當豐厚的意見,所以SSMS分配很多別名,這本身不是一個問題,但使select語句在我的Visual Studio項目,更不可讀:

SELECT RequestedDeliveryDate, Alias1, Alias2 FROM vwMyView 

所有這一切,我是經過某種方式SSMS編寫查詢,將串連表&柱給我一個更可讀的別名:

Column = AddressLine1 
Alias = CustomerAddressLine1 
Table = Customer 

Column = AddressLine1 
Alias = SupplierAddressLine1 
Table = Supplier 

這將使我的SELECT查詢更可讀:

SELECT RequestedDeliveryDate,CustomerAddressLine1,SupplierAddressLine1 FROM vwMyView 

我可以手動分配的條件窗格中的別名,但它在許多觀點與許多重複的列名非常繁瑣。

+3

爲什麼不自己寫視圖?設計師不會拿出非常有意義的名字。 –

+0

是的,當你讓設計師爲你做你的工作時,這是你接受的限制。你絕對應該爲每一列選擇你自己有意義的名字。 –

+0

無論您是使用設計器還是使用tSQL,都必須手動輸入別名。我不知道任何可以爲您工作的第三方擴展。 – Alex

回答

0

我討厭視圖設計師。只用代碼創建視圖。例如:

CREATE VIEW [dbo].[MyViewName] 
AS 

SELECT RequestedDeliveryDate,CustomerAddressLine1,SupplierAddressLine1 FROM vwMyView 

GO 

副本,如果你喜歡從視圖設計器連接和過濾器,但後來改變選擇部分領域走樣。

+0

但我說的是30 -40個視圖,每個視圖最多包含100個重複的列名稱。我不能相信,使用查詢,我不能連接表和列的名稱,以產生一個可讀的別名! – shaunBurrowes

+0

示例視圖的SQL SELECT如下所示。如您所見,我已經手動編輯了前幾個字段的列別名,但是如果您查看SELECT的結尾,您會看到SSMS已將別名命名爲Alias70。必須有一些方法來創建一個連接表名和列名的查詢來創建我想要的別名! – shaunBurrowes

+0

SELECT dbo.SOPOrderReturnLine.ItemCode AS SOPOrderReturnLineItemCode,dbo.SOPOrderReturnLine.ItemDescription AS SOPOrderReturnLineItemDescription, dbo.SOPOrderReturnLine.LineQuantity AS SOPOrderReturnLineLineQuantity,dbo.SOPOrderReturnLine.LineTypeID AS SOPOrderReturnLineLineTypeID, dbo.SOPOrderReturnLine.LineTotalValue AS SOPOrderReturnLineLineTotalValue,dbo.SOPOrderReturnLine.LineTaxValue AS SOPOrderReturnLineLineTaxValue, – shaunBurrowes