我正在对一个令人讨厌的存储过程进行故障排除,并注意到在运行它之后,并且我已经关闭了会话,许多临时表仍然留在 tempdb 中。他们的名字如下:
#000E262B
#002334C4
#004E1D4D
#00583EEE
#00783A7F
#00832777
#00CD403A
#00E24ED3
#00F75D6C
如果我运行这段代码:
if object_id('tempdb..#000E262B') is null
print 'Does NOT exist!'
I get:
Does NOT exist!
If I do:
use tempdb
go
drop TABLE #000E262B
我收到错误:
Msg 3701, Level 11, State 5, Line 1
Cannot drop the table '#000E262B', because it does not exist or you do not have permission.
我以系统管理员身份连接到 SQL Server。使用 SP3 64 位。我目前在 tempdb 中有超过 1100 个这样的表,而且我无法删除它们。数据库服务器上没有其他用户。
在我的情况下,停止和启动 SQL Server 不是一个选项。
Thanks!
http://www.sqlservercentral.com/Forums/Topic456599-149-1.aspx
如果经常使用临时表或表变量,那么 SQL 不会删除它们,而是“截断”它们,保留定义。它节省了下次需要时重新创建表的工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)