表名为Scores。
执行以下操作是否正确?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
表名为Scores。
执行以下操作是否正确?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
当前回答
如果您正在使用visual Studio,只需从菜单栏打开,
查看->SQL Server对象资源管理器
它应该像这里所示那样打开
选择并右键单击要删除的表,然后删除。应显示这样的屏幕。单击更新数据库以确认。
此方法非常安全,因为它会向您提供反馈,并会警告删除的表与其他表之间的任何关系。
其他回答
ANSI SQL/跨平台方法是使用INFORMATION_SCHEMA,它专门用于查询SQL数据库中对象的元数据。
if exists (select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'Scores' AND TABLE_SCHEMA = 'dbo')
drop table dbo.Scores;
大多数现代RDBMS服务器至少提供基本的INFORMATION_SCHEMA支持,包括:MySQL、Postgres、Oracle、IBM DB2和Microsoft SQL Server 7.0(及更高版本)。
SQL Server 2016及以上版本最好、最简单的版本是删除表(如果存在)[表名称]
Ex:
DROP TABLE IF EXISTS dbo.Scores
如果假设上面的方法不起作用,那么可以使用下面的方法
IF OBJECT_ID('dbo.Scores', 'u') IS NOT NULL
DROP TABLE dbo.Scores;
我使用:
if exists (select *
from sys.tables
where name = 'tableName'
and schema_id = schema_id('dbo'))
begin
drop table dbo.tableName
end
IF EXISTS (SELECT NAME FROM SYS.OBJECTS WHERE object_id = OBJECT_ID(N'Scores') AND TYPE in (N'U'))
DROP TABLE Scores
GO
看过很多不太管用的。创建临时表时,必须将其从tempdb中删除!
唯一有效的代码是:
IF OBJECT_ID('tempdb..#tempdbname') IS NOT NULL --Remove dbo here
DROP TABLE #tempdbname -- Remoeve "tempdb.dbo"