【发布时间】:2022-01-21 08:39:12
【问题描述】:
在 SQL Server 中,是否有一种简单的方法可以从 SELECT 语句中输出完全限定的字段名称列表,即使使用别名也是如此?
例如:
SELECT
a.FieldName1
, a.FieldName2
, CASE WHEN a.FieldName9 = 'A' and b.FieldName10 = 'C' Then 'Yes' Else 'No' END as AliasedCase
FROM DatabaseA.dbo.Table1 a
JOIN DatabaseB.dbo.Table2 b on a.FieldName4 = b.FieldName4
WHERE b.FieldName8 Between 1 and 4
输出列表如下所示:
- DatabaseA.dbo.Table1.FieldName1
- DatabaseA.dbo.Table1.FieldName2
- DatabaseA.dbo.Table1.FieldName4
- DatabaseA.dbo.Table1.FieldName9
- DatabaseB.dbo.Table2.FieldName4
- DatabaseB.dbo.Table2.FieldName8
- DatabaseB.dbo.Table2.FieldName10
【问题讨论】:
-
没有简单的方法,只能手动。
-
从您的查询中创建一个视图,然后从
sys.dm_sql_referenced_entities获取您的信息。
标签: sql sql-server tsql