如何从 SQL Server 中删除临时表?

T.H*_*.H. 1 sql-server-2008 sql-server

我想删除我在 SQL Server 2008 的脚本中使用的临时表。如果不编写几行代码,我找不到删除它的方法。我一直无法找到正常工作的代码。有没有什么办法不用编写代码就可以做到这一点?如果没有,我的方法应该是什么?在新脚本中复制我的代码然后创建同名临时表会有帮助吗?

非常感谢任何帮助/建议/建议。

scs*_*mon 5

会话结束时删除临时表。因此,当您关闭 SSMS 窗口或应用程序会话结束时,它们将被删除。

如果您正在使用 SSMS 开发代码(并保持会话打开),那么您需要通过...

drop #tempTable
Run Code Online (Sandbox Code Playgroud)

另一种防止您尝试删除不存在的临时表的常用方法是首先检查它是否存在。

if object_id('tempdb..#tempTable') is not null
drop table #tempTable

create table #tempTable...
or
select into #tempTable
Run Code Online (Sandbox Code Playgroud)

应该提到Aaron Bertrand 的一些辅助函数的注释。

  • 您不必担心...一旦创建它们的会话结束,它们将被删除。如果您将所有会话保持打开状态,那么您会遇到更大的问题。[有关临时表的更多信息](https://www.red-gate.com/simple-talk/sql/t-sql-programming/temporary-tables-in-sql-server/) 但您可以通过查看将它们全部列出在`tempdb.sys.objects` (3认同)