如果表存在,如何删除它? [英] How to drop a table if it exists?

查看:22
本文介绍了如果表存在,如何删除它?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

表名是Scores.

以下做法正确吗?

IF EXISTS(SELECT *
          FROM   dbo.Scores)
  DROP TABLE dbo.Scores

推荐答案

以下做法正确吗?

Is it correct to do the following?

IF EXISTS(SELECT *
          FROM   dbo.Scores)
  DROP TABLE dbo.Scores

否.只有当表包含任何行时才会删除该表(如果表不存在,则会引发错误).

No. That will drop the table only if it contains any rows (and will raise an error if the table does not exist).

相反,您可以使用永久表

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 的回答.

SQL Server 2016+ has a better way, using DROP TABLE IF EXISTS …. See the answer by @Jovan.

这篇关于如果表存在,如何删除它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆