sqlserver 无法查询到临时表

if not exists(select * from tempdb..sysobjects where id=object_id('tempdb..##DateL')) Begin

CREATE TABLE ##DateL (adate datetime,)
End
提示错误:数据库中已存在名为 '##DateL' 的对象。
应该是if not exists这句没有查到之前建立的临时表##DateL请问怎么解决,怎么能查询到已存在的表##DateL

经测试,以上语句没有问题的,可以判断到这个临时表的存在。或者你用下面这个语句也可以的

IF OBJECT_ID('tempdb..##DateL') IS NOT NULL
DROP TABLE ##DateL
CREATE TABLE ##DateL (adate datetime)

已存在##DateL表名

 if  exists(select * from tempdb..sysobjects where id=object_id('tempdb..##DateL')) Begin

CREATE TABLE ##DateL (adate datetime,)
End 

既然是临时表,建表前建议先drop

##是全局临时表,是不是其它地方也有创建了这个表名的全局临时表,建议检查其它代码或者更换成局部临时试试 #

如上所说,##是全局的。记录不多就用表变量,declare @DateL TABLE(adate datetime) 不用删除、存在内存的