表名为Scores。
执行以下操作是否正确?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
表名为Scores。
执行以下操作是否正确?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
当前回答
确保在末尾使用级联约束来自动删除依赖于表的所有对象(例如视图和投影)。
drop table if exists tableName cascade;
其他回答
简单的是:
IF OBJECT_ID(dbo.TableName, 'U') IS NOT NULL
DROP TABLE dbo.TableName
其中dbo.TableName是所需的表,“U”是表的类型。
看过很多不太管用的。创建临时表时,必须将其从tempdb中删除!
唯一有效的代码是:
IF OBJECT_ID('tempdb..#tempdbname') IS NOT NULL --Remove dbo here
DROP TABLE #tempdbname -- Remoeve "tempdb.dbo"
SQL Server 2016及以上版本最好、最简单的版本是删除表(如果存在)[表名称]
Ex:
DROP TABLE IF EXISTS dbo.Scores
如果假设上面的方法不起作用,那么可以使用下面的方法
IF OBJECT_ID('dbo.Scores', 'u') IS NOT NULL
DROP TABLE dbo.Scores;
如果您使用长代码,并且希望为临时表编写更少的代码,请创建以下过程:
CREATE PROCEDURE MF_DROP (@TEMP AS VARCHAR(100)) AS
EXEC('IF OBJECT_ID(''TEMPDB.DBO.' + @TEMP + ''', ''U'') IS NOT NULL DROP TABLE ' + @TEMP)
执行中:
EXEC MF_DROP #A
CREATE TABLE #A (I INT) ....
Or:
if exists (select * from sys.objects where name = 'Scores' and type = 'u')
drop table Scores