当我在 tempdb 中查询表格时,我会得到一个长列表,其中一些已有6个月以上。我想删除它们,但是当我尝试时,我会收到消息
无法删除表'#A0033175',因为它不存在或您这样做 没有许可。
我想这是因为此表属于其他用户,即使SA用户也无法将其删除。有什么办法可以放下那些旧桌子?我本来以为他们的会议结束后必须被删除。
SQL Server 2012(SP3(
表名称实际上是类似于#ABC _____ 012345,其中除了'abc'name extion之后的初始字符以外的所有内容均由SQL Server添加,以使创建它的会话中的表独特的表格。这样,可以在多个会话(Windows(中运行PROC,并且临时表不会彼此踩踏。
摆脱这些临时表,请确保会话已关闭。通常,有人可能已经回家而没有关闭SSM,留下一堆窗户打开,从而创建了临时表。杀死会话会导致SQL Server丢弃临时表。您可能有一个很长的运行查询(可能是某种问题(已经运行了几个月,因此它创建的温度表仍在附上。杀死会议时要小心 - 如果杀死"错误"会议,您可以使自己非常不受欢迎。
这适用于名称前面的单个#标志的表。double ##符号表示一个从所有会话中可见的表,而SQL Server不会更改名称以使表名称独特。