SQL Server - 在视图上选择列的内部查询是啥
Posted
技术标签:
【中文标题】SQL Server - 在视图上选择列的内部查询是啥【英文标题】:SQL Server - What is the internal query of selecting columns on a viewSQL Server - 在视图上选择列的内部查询是什么 【发布时间】:2018-07-07 23:24:40 【问题描述】:如果我在视图中选择某些列,内部 SQL Server 将首先选择表/表的所有列,然后进行子查询?
例如:
名为 THEVIEW 的视图可能是:
Select id, LTrim(RTrim(Name)) as Name, Age, Age-1 as AgeMinus1
From Persons
然后我会查询视图:
Select id, AgeMinus1
From THEVIEW
内部查询是这样的:
Select id, Age-1 as AgeMinus1
From Persons
或者这个(然后只显示 id,AgeMinus1:
Select id, LTrim(RTrim(Name)) as Name, Age, Age-1 as AgeMinus1
From Persons
谢谢大家!!!
【问题讨论】:
【参考方案1】:如果你想查看 SQL 的内部运作,你需要使用 SQL server profiler,它可以非常直接地跟踪查询,建议你使用用户名过滤器或类似的东西,否则你会被大量的数据淹没。
这里有一个关于如何运行它的link,如果您查询视图,您将看到由 SQL 生成的相应查询。
【讨论】:
我试过了,但 SQL Profiler 会向您显示对视图的查询...无论如何谢谢以上是关于SQL Server - 在视图上选择列的内部查询是啥的主要内容,如果未能解决你的问题,请参考以下文章
在一列上选择 DISTINCT,返回多个其他列(SQL Server)
在一列上选择 DISTINCT,返回多个其他列(SQL Server)