【发布时间】:2016-10-08 19:56:43
【问题描述】:
我正在寻找一种在 SSMS 中编写查询的方法,该查询将连接表和列,从而为我提供更具可读性的别名。
我实际上使用的是 SSMS,右键单击对象资源管理器中的视图,然后选择新视图。
我从可用表格列表中选择我需要的表格。
然后我在 SSMS 图表窗格中设置所需的连接,并从各个表中选择我想要的所有列。
在条件窗格中,我可以看到“列”、“别名”和“表”列。 Column 列中的值始终是唯一的,例如:
Column = RequestedDeliveryDate
Alias = (blank)
Table = Stock Item
但是!
只要列值不唯一,SSMS 就会为其分配自己的别名,例如:
Column = AddressLine1
Alias = Alias1
Table = Customer
Column = AddressLine1
Alias = Alias2
Table = Supplier
这些是我正在处理的大量视图,因此 SSMS 分配了很多别名,这本身不是问题,但会使我的 Visual Studio 项目中的 select 语句更加难以阅读:
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
我可以在 Criteria Pane 中手动分配别名,但在许多具有许多重复列名的视图中非常繁琐。
【问题讨论】:
-
为什么不自己写视图呢?设计师不会想出非常有意义的名字。
-
是的,当您让设计师为您完成工作时,这是您接受的限制。你绝对应该为每一列选择你自己有意义的名字。
-
无论您使用的是设计器还是 tSQL,您都必须手动键入别名。我不知道有任何第 3 方扩展可以为您工作。
-
我的视图有 20 多个表,超过 200 列。更改以下内容会非常繁琐,需要处理 20 多个视图:dbo.SLCustomerAccount.AnalysisCode15 AS Expr61、dbo.SLCustomerAccount.AnalysisCode16 AS Expr62、dbo.SLCustomerAccount.AnalysisCode17 AS Expr63、dbo.SLCustomerAccount.AnalysisCode18 AS Expr64、dbo。 SLCustomerAccount.AnalysisCode19 AS Expr65, dbo.SLCustomerAccount.AnalysisCode20 AS Expr66
-
理想情况下(使用上面评论中的第一行)我希望别名为 SLCustomerAccountAnalysisCode15,而不是 Expr61
标签: sql-server