在sql使用过程中,我们在删除数据库表时,需要对表是否存在进行下判断,再进行删除操作。下边就看看如何使用sql判断表是否存在:
sql代码如下:
代码如下 | 复制代码 |
if exists ( select * from INFORMATION_SCHEMA.tables |
可见,sql判断表是否存在非常简单,这样进行判断后再删除可以避免表不存在的错误。
我们再做得更高级一些
在sqlserver中,创建表之前判断表是否存在,如果存在则删除已有表
代码如下 | 复制代码 |
----SQL-Server if exists (select 1 from sysobjects where id = object_id('EMP') and type = 'U') drop table S_Evaluate go --CREATE Table: EMP create table EMP( Id numeric identity, -- 评估ID Conclusion text null --结论 constraint PK_S_EMP primary key nonclustered(Id) ) go |
临时表是否存在
USE [实例名]
代码如下 | 复制代码 |
GO IF EXISTS (SELECT * FROM dbo.SysObjects WHERE ID = object_id(N'[表名]') AND OBJECTPROPERTY(ID, 'IsTable') = 1) |
例如:
代码如下 | 复制代码 |
use fireweb; IF EXISTS (SELECT * FROM dbo.SysObjects WHERE ID = object_id(N'TEMP_TBL') AND OBJECTPROPERTY(ID, 'IsTable') = 1) |
2、临时表是否存在:
方法一:
代码如下 | 复制代码 |
use fireweb; if exists(select * from tempdb..sysobjects where id=object_id('tempdb..##TEMP_TBL')) |
方法二:
代码如下 | 复制代码 |
use fireweb; if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#TEMP_TBL') and type='U') |