if object_id('tempdb.#temp') is null
print '无'
else
print '有'
if object_id('tempdb.##temp') is null
print '无'
else
print '有'
print '无'
else
print '有'
if object_id('tempdb.##temp') is null
print '无'
else
print '有'
drop table [#temp]
print '无'
else
print '有'楼上的少了一个点。哈哈。
通过查询sysobjects来确定临时表#temp是否存在,这种方法是不行的,因为新规一个临时表之后,sysobjects并没有多一条记录,而是tempdb数据库中多了一个表#temp
的记录.
正确的写法:
1.
select * from tempdb..sysobjects
where id=object_id('tempdb..#szhq') and OBJECTPROPERTY(id, N'IsUserTable') = 1
2.
use tempdb
select * from sysobjects
where id=object_id(N'[#szhq]')and OBJECTPROPERTY(id, N'IsUserTable') = 1
3.
select * from tempdb..sysobjects
where name like '#szhq%'and OBJECTPROPERTY(id, N'IsUserTable') = 1
print '无'
else
print '有'if object_id('tempdb..##temp') is null
print '无'
else
print '有'
print '存在'
else
print '不存在'
Select * From Tempdb.dbo.sysobjects Where Name Like '#临时表名%'
print '存在'
print '无'
这样一个点就行了