2016-06-08 56 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