表名为Scores。
执行以下操作是否正确?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
表名为Scores。
执行以下操作是否正确?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
当前回答
在SQL Server 2016(13.x)及更高版本中
DROP TABLE IF EXISTS dbo.Scores
在早期版本中
IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL
DROP TABLE dbo.Scores;
U是您的桌子类型
其他回答
从SQL Server 2016,您可以使用
DROP TABLE IF EXISTS dbo.Scores
参考:DROP IF EXISTS-SQL Server 2016中的新事物
它将很快出现在SQL Azure数据库中。
执行以下操作是否正确?如果存在(选择*来自数据库分数)下降表数据分数
否。只有当表包含任何行时,才会删除该表(如果表不存在,则会引发错误)。
相反,对于永久表,可以使用
IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL
DROP TABLE dbo.Scores;
或者,对于临时表,您可以使用
IF OBJECT_ID('tempdb.dbo.#TempTableName', 'U') IS NOT NULL
DROP TABLE #TempTableName;
SQL Server 2016+有更好的方法,使用DROP TABLE IF EXISTS…。请看@Jovan的回答。
如果您正在使用visual Studio,只需从菜单栏打开,
查看->SQL Server对象资源管理器
它应该像这里所示那样打开
选择并右键单击要删除的表,然后删除。应显示这样的屏幕。单击更新数据库以确认。
此方法非常安全,因为它会向您提供反馈,并会警告删除的表与其他表之间的任何关系。
SQL Server 2016及以上版本最好、最简单的版本是删除表(如果存在)[表名称]
Ex:
DROP TABLE IF EXISTS dbo.Scores
如果假设上面的方法不起作用,那么可以使用下面的方法
IF OBJECT_ID('dbo.Scores', 'u') IS NOT NULL
DROP TABLE dbo.Scores;
Or:
if exists (select * from sys.objects where name = 'Scores' and type = 'u')
drop table Scores