Tom20081
2018-04-08 04:02
采纳率: 100%
浏览 1.9k

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

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 听雨停了 2018-04-08 05:57
    已采纳

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

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

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • qq_41722884 2018-04-08 04:12

    已存在##DateL表名

    评论
    解决 无用
    打赏 举报
  • tylerzhangdi 2018-04-08 05:55
     if  exists(select * from tempdb..sysobjects where id=object_id('tempdb..##DateL')) Begin
    
    CREATE TABLE ##DateL (adate datetime,)
    End 
    
    评论
    解决 无用
    打赏 举报
  • weixin_41908518 2018-04-08 07:11

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

    评论
    解决 无用
    打赏 举报
  • sky__walk 2018-04-08 08:34

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

    评论
    解决 无用
    打赏 举报
  • hyh086 2018-04-15 04:00

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题