我认为这是主观的问题之一,并且会变成一个偏好问题,但是:
从可读性的角度来看,我主张仅在必要时才明确。SQL 语句通常足够复杂,无需阅读大量不必要的文本。
我觉得
SELECT TOP 1000 [StoreNumber]
,[Address1]
,[Address2]
,[City]
,[St]
,[Zip]
,[ZipSuffix]
,[LocationType]
,[LocationSubType]
,[Corp]
,[Division]
,[ZoneNumber]
,[DistrictNumber]
,[StateNumber]
FROM [CommonData].[dbo].[vw_StoreData]
比可读性强很多
SELECT TOP 1000 [CommonData].[dbo].[vw_StoreData].[StoreNumber]
,[CommonData].[dbo].[vw_StoreData].[[Address1]
,[CommonData].[dbo].[vw_StoreData].[[Address2]
,[CommonData].[dbo].[vw_StoreData].[[City]
,[CommonData].[dbo].[vw_StoreData].[[St]
,[CommonData].[dbo].[vw_StoreData].[[Zip]
,[CommonData].[dbo].[vw_StoreData].[[ZipSuffix]
,[CommonData].[dbo].[vw_StoreData].[[LocationType]
,[CommonData].[dbo].[vw_StoreData].[[LocationSubType]
,[CommonData].[dbo].[vw_StoreData].[[Corp]
,[CommonData].[dbo].[vw_StoreData].[[Division]
,[CommonData].[dbo].[vw_StoreData].[[ZoneNumber]
,[CommonData].[dbo].[vw_StoreData].[[DistrictNumber]
,[CommonData].[dbo].[vw_StoreData].[[StateNumber]
FROM [CommonData].[dbo].[vw_StoreData]
(当您开始连接表时情况会变得更糟,如果您要连接不同数据库中的表,情况会更糟。)
如果您需要通过单独查看查询来准确了解特定字段来自哪个数据库、模式和表,我可以看到您在哪里可以争辩说第二个更具可读性。
但在 SQL Server 中,例如,您可以在设计器中打开该查询,并在更友好的图形视图中查看它。
恕我直言,我唯一会使用完整语法的时候是在必要时,跨越表/数据库/模式边界时,或者如果您有两个具有相同字段名称的表。
例子:
SELECT TOP 1000 [CommonData].[dbo].[vw_StoreData].[StoreNumber]
,[Address1]
,[Address2]
,[City]
,[St]
,[Zip]
,[ZipSuffix]
,[LocationType]
,[LocationSubType]
,[Corp]
,[Division]
,[ZoneNumber]
,[DistrictNumber]
,[StateNumber]
FROM [CommonData].[dbo].[vw_StoreData]
Inner Join [CommonData].[dbo].[vw_StorePhones]
ON [CommonData].[dbo].[vw_StorePhones].[StoreNumber] = [CommonData].[dbo].[vw_StoreData].[StoreNumber]
即使在这种情况下,我也会使用表别名来缩短它并使其更具可读性。
综上所述,在现实世界中,您很可能会发现自己为一家已经确定了标准格式的公司工作,并且您需要根据公司的标准进行编码。