我想知道如何/是否有可能删除所有临时表的查询?
我一直在尝试使用tempdb.sys.tables解决问题,但是正在努力格式化name列使其可以被删除- 另一个使事情变得棘手的因素是,temp表名称通常包含’_’意味着进行替换变得更麻烦了(至少对我而言!)
有什么我可以使用的方法,可以删除所有临时表(本地或全局),而不必分别删除所有临时表?
谢谢!
临时表的要点是它们是..临时的。一旦超出范围
查询消失。如果发现需要手动删除临时表,则需要重新使用它们。
对于全局变量,这将生成并执行语句以将其全部删除。
declare @sql nvarchar(max) select @sql = isnull(@sql+';', '') + 'drop table ' + quotename(name) from tempdb..sysobjects where name like '##%' exec (@sql)
但是,删除其他会话的[global]临时表是一个坏主意。
对于本地( 到此会话 )临时表,只需断开连接并再次重新连接。