Sql 不使用';AS';关键字创建临时表?
我听说Sql 不使用';AS';关键字创建临时表?,sql,sql-server,temp-tables,Sql,Sql Server,Temp Tables,我听说create table#tbname或create table#tbname在临时数据库中创建临时表。但是,下面的查询是否在临时数据库中创建临时表 Select * from (select * from table1) as temp; 由于各种原因,有些查询会在tempdb中创建工作表。使用示例中的派生表不是其中之一 如果您想更仔细地了解它的作用,可以使用设置统计io on并在SSMS中执行查询 set statistics io on select * from (selec
create table#tbname
或create table#tbname
在临时数据库中创建临时表。但是,下面的查询是否在临时数据库中创建临时表
Select * from
(select * from table1) as temp;
由于各种原因,有些查询会在tempdb中创建工作表。使用示例中的派生表不是其中之一 如果您想更仔细地了解它的作用,可以使用
设置统计io on
并在SSMS中执行查询
set statistics io on
select *
from (select * from T) as T
我的Messages选项卡中的输出为
表“T”。扫描计数1,逻辑读取3,物理读取0,预读
读取0,lob逻辑读取0,lob物理读取0,lob提前读取
读数为0
如果您在tempdb中的表中有任何活动,它将显示在那里
要查看子查询是否真的改变了某些内容,可以做的另一件事是查看查询计划,并可能比较使用子查询的查询和不使用子查询的查询的查询计划
select *
from (select * from T) as T
select * from T
这些查询的结果相同,执行计划也相同。SQL Server看穿了您的子查询,并意识到它可以简化
SQL是一种声明性语言,这意味着您要表达最终结果应该是什么,而不是SQL Server应该如何实现
然后是查询提示和其他一些东西,它们会对优化器如何生成查询计划产生一些影响。但这是另一个故事。它不会创建临时表。它是一个子查询。那么选定的数据将与主存一起存储?那么CTE也会这么做,不是吗?这是新的你从哪里听说的it@MuthukumarPalaniappan-我不知道你问这个问题的目的是什么。您不能更改
temp
表格。它是由SQL server存储的临时结果集。你能改变temp
?“下面的查询是否创建了一个temp表?”-简单明了:今天的noMy课程。。。SQL是一种声明性语言,这意味着您要表达最终结果应该是什么,而不是SQL Server应该如何实现+1.