if object_id('tempdb.#temp') is null
  print '无'
else
  print '有'
if object_id('tempdb.##temp') is null
  print '无'
else
  print '有'

解决方案 »

  1.   

    if exists (select * from temp.sysobjects where id = object_id(N'[#temp]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [#temp]
      

  2.   

    if object_id('tempdb..#temp') is null
      print '无'
    else
      print '有'楼上的少了一个点。哈哈。
      

  3.   

    to liukanghui(刘康辉) :
    通过查询sysobjects来确定临时表#temp是否存在,这种方法是不行的,因为新规一个临时表之后,sysobjects并没有多一条记录,而是tempdb数据库中多了一个表#temp
      

  4.   

    只有使用objectid的方法才可以,OBJECT_ID是返回数据库对象标识号。
      

  5.   

    tempdb数据库的sysobjects会多出一条类似"#temp_____________________________________________________________000000000022"
    的记录.
    正确的写法:
    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
      

  6.   

    if object_id('tempdb..#temp') is null
      print '无'
    else
      print '有'if object_id('tempdb..##temp') is null
      print '无'
    else
      print '有'
      

  7.   

    select object_ID('tempdb.#mytable')
      

  8.   

    if exists(select * from tempdb..sysobjects where name='##临时表名称' and xtype='U')
    print '存在'
    else
    print '不存在'
      

  9.   

    刚刚试验的结果:
    Select * From Tempdb.dbo.sysobjects Where Name Like '#临时表名%'
      

  10.   

    if exists(select name  from sysobjects where name=' #temp')
     print '存在'
      

  11.   

    if object_id('tempdb.dbo.#temp') is null
      print '无'
    这样一个点就行了