DROP TABLE IF EXISTS 与 OBJECT_ID IS NOT NULL

Reg*_*Guy 7 sql-server performance

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

IF OBJECT_ID(N'tempdb..#tempTable') IS NOT NULL
    DROP TABLE #tempTable
Run Code Online (Sandbox Code Playgroud)

我最近意识到以下方法具有相同的作用:

DROP TABLE IF EXISTS #tempTable
Run Code Online (Sandbox Code Playgroud)

有一种方法比另一种更好吗?

vvv*_*v4d 6

解释

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

文档

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