表名为Scores。
执行以下操作是否正确?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
表名为Scores。
执行以下操作是否正确?
IF EXISTS(SELECT *
FROM dbo.Scores)
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) ....
其他回答
我编写了一个小UDF,如果其参数是现有表的名称,则返回1,否则返回0:
CREATE FUNCTION [dbo].[Table_exists]
(
@TableName VARCHAR(200)
)
RETURNS BIT
AS
BEGIN
If Exists(select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = @TableName)
RETURN 1;
RETURN 0;
END
GO
要删除表User(如果存在),请按如下方式调用它:
IF [dbo].[Table_exists]('User') = 1 Drop table [User]
简单的是:
IF OBJECT_ID(dbo.TableName, 'U') IS NOT NULL
DROP TABLE dbo.TableName
其中dbo.TableName是所需的表,“U”是表的类型。
如果您正在使用visual Studio,只需从菜单栏打开,
查看->SQL Server对象资源管理器
它应该像这里所示那样打开
选择并右键单击要删除的表,然后删除。应显示这样的屏幕。单击更新数据库以确认。
此方法非常安全,因为它会向您提供反馈,并会警告删除的表与其他表之间的任何关系。
在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是您的桌子类型
确保在末尾使用级联约束来自动删除依赖于表的所有对象(例如视图和投影)。
drop table if exists tableName cascade;