SQL Server Temp表中的异常行为

时间:2014-01-03 06:51:24

标签: sql-server-2012 temp-tables

我不明白为什么下面的代码会返回错误

  

Msg 2714,Level 16,State 1,Line 16
  数据库中已经有一个名为'#temptable'的对象。

如果第1-5行分别执行第6-8行,则工作正常。我想我遗漏了一些关于SQL Server如何处理查询的基本信息。请求其中一位专家来解释这个问题。

select top 10 col1, col2
into #temptable
from tbl

if object_id('tempdb..#temptable') is not null
   drop table #temptable

select top 10 col1, col2
into #temptable
from tbl

1 个答案:

答案 0 :(得分:2)

编译批处理时代码失败,而不是执行代码时。

行为记录在CREATE TABLE

  

如果在单个存储中创建了多个临时表   程序或批次,它们必须有不同的名称。