【问题标题】:DROP TABLE IF EXISTS vs OBJECT_ID IS NOT NULLDROP TABLE IF EXISTS vs OBJECT_ID IS NOT NULL
【发布时间】:2020-09-03 17:45:07
【问题描述】:

当我创建一个临时表时,我通常会确保如果它们存在,我会删除它们。

IF OBJECT_ID(N'tempdb..#tempTable') IS NOT NULL
    DROP TABLE #tempTable

我最近意识到下面的方法也是一样的:

DROP TABLE IF EXISTS #tempTable

有没有比另一种更好的方法?

【问题讨论】:

  • DROP TABLE IF EXISTS 似乎更简单,更直观/清晰......
  • 我同意,但我发现第一种方法的使用频率高于第二种方法。这就是为什么我想知道是否存在相关的性能原因或其他原因
  • 因为第二个最近才添加到SQL Server中

标签: sql-server performance


【解决方案1】:

说明

他们做同样的事情只是语法不同,你问题中的后一种方法是更新的。从 SQL Server 2016 13.x 到撰写本文时的当前版本 SQL Server 2019 (15.x),DROP TABLE 支持 IF EXISTS 子句。

文档

IF EXISTS 功能记录在此处的参数部分中:https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-table-transact-sql?view=sql-server-ver15#arguments

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2011-01-15
    • 1970-01-01
    相关资源
    最近更新 更多