好吧,我多年来一直在标准 T-SQL 编码中使用#temp 表,并认为我理解它们。然而,我被拖进了一个基于 MS Access 的项目,利用传递查询,发现了一些让我很困惑的东西。虽然也许是 Access 的内部运作让我上当了!?
在这里我们开始:在正常使用下,我理解如果我在 Sproc 中创建一个临时表,它的范围以 SProc 的结尾结束,并且默认情况下被删除。
在 Access 示例中,我发现可以在一个查询中执行此操作:
select top(10) * into #myTemp from dbo.myTable
然后在第二个单独的查询中:
从 #myTemp 中选择 *
这怎么可能 ?如果临时表在当前会话中终止,这是否意味着 Access 保持单个会话打开,并将该会话用于执行的所有查询?
还是我对范围的基本理解一直都是错误的?
希望有人可以帮助澄清幕后发生的事情!?
非常感谢