gpt4 book ai didi

sql - 删除实例的所有临时表

转载 作者:行者123 更新时间:2023-12-02 08:59:14 26 4
gpt4 key购买 nike

我想知道如何/是否可以进行删除所有临时表的查询?

我一直在尝试使用 tempdb.sys.tables 来解决一些问题,但正在努力格式化名称列以使其成为可以删除的东西 - 另一个使事情变得有点棘手的因素是,通常表名包含“_”,这意味着进行替换变得有点麻烦(至少对我来说!)

有什么我可以使用的东西来删除所有临时表(本地或全局),而不必在指定的基础上单独删除它们?

谢谢!

最佳答案

临时表的要点是它们是..临时的。一旦超出范围

  • #temp 在存储过程中创建:存储过程退出
  • #temp 在 session 中创建: session 断开连接
  • ##temp :创建它的 session 断开连接

查询消失。如果您发现需要手动删除临时表,则需要重新审视它们的使用方式。

对于全局的,这将生成并执行语句以将它们全部删除。

declare @sql nvarchar(max)
select @sql = isnull(@sql+';', '') + 'drop table ' + quotename(name)
from tempdb..sysobjects
where name like '##%'
exec (@sql)

不过,删除其他 session 的[全局]临时表是一个坏主意。

对于本地(此 session )临时表,只需断开连接并再次重新连接即可。

关于sql - 删除实例的所有临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5497450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com