SQL Server删除临时表具有异常行为

时间:2019-07-05 10:25:38

标签: sql-server

我试图了解有关删除临时表的一些奇怪的SQL Server行为。以下代码在第3行导致错误,提示“数据库中已经存在一个名为'#Table1'的对象。”

为什么表格在删除后仍然存在?

create table #Table1 (Col int)
drop table #Table1
create table #Table1 (Col int)
drop table #Table1

我尝试了其他一些代码示例作为健全性检查。

create table #Table1 (Col int)
drop table #Table1
select * from #Table1

按预期,从删除的临时表中选择失败。

create table Table1 (Col int)
drop table Table1
create table Table1 (Col int)
drop table Table1

按预期方式,可以成功删除和重新创建非临时表。

begin tran
create table #Table1 (Col int)
drop table #Table1
commit
begin tran
create table #Table1 (Col int)
drop table #Table1
commit

包装交易中的线对没有区别;它仍然失败。

create table #Table1 (Col int)
drop table #Table1
go
create table #Table1 (Col int)
drop table #Table1

在两行之间插入一个“ GO”使整个脚本成功。

为什么这只会对临时表失败?

0 个答案:

没有答案