[转]SQL判断临时表是否存在

判断临时表是否存在

Way 1

if(exists(select name from tempdb..sysobjects where name like'%temptab%' and type='U'))
   drop table #temptab

Way 2

if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#tempcitys') and type='U')
   drop table #tempcitys

Way 3

IF OBJECT_ID('tempdb..#') IS NOT NULL
   DROP TABLE #

OBJECT_ID此函数返回数据库对象标识号

判断数据库里有没有存在PerPersonData这样一张表

if exists (select * from sysobjects where objectproperty(object_id('PerPersonData'),'istable') = 1)

OBJECTPROPERTY:返回当前数据库中对象的有关信息。1表“真”。同样可以写成OBJECTPROPERTY(id, isUserTable) = 1

if exists (select * from sysobjects where id = object_id(N'PerPersonData') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
drop table 'PerPersonData'

判断试图是否存在
if exists (select * from sysobjects where id = object_id(N‘[dbo].[ESTMP]‘)
and OBJECTPROPERTY(id, N‘IsView‘) = 1)
  drop view ESTMP

原文地址:https://www.cnblogs.com/wangshenhe/p/2701932.html