这是SQL管理临时表的命名方式啊

解决方案 »

  1.   

    if object_id('temp..#t') is not null
      print('存在')
    else
      print('不存在')
      

  2.   

    select * from tempdb..sysobjects where name = '#szhq'这句无法SELECT出,可又确实存在。怎么办?
      

  3.   

    sql server本来就是这样对临时表进行命名的,可以想象一下,多个进程都创建了一个名为#szhq的临时表在tempdb中,表名都为szhq的话这样本身就是不允许的。
      

  4.   

    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
      

  5.   

    这是系统区分各个进程创建的临时表的方式,系统会自动给临时表名加上一组数字命名,因此临时表的文件名长度不能超过126位,你可以用object_id('#tempname')来查询临时表是否存在