ELSE DROP TABLE #tt 
该语句有错!表都删除了,肯定#tt 无效。
第二次,else不成立,所以不出错。

解决方案 »

  1.   

    ELSE truncate TABLE #tt
      

  2.   

    IF (SELECT object_id('tempdb..#tt')) IS NULL 
    CREATE TABLE #tt(DeptProcName varchar(50), EquType varchar(50), EquName varchar(50), 
    EquDes varchar(50), TaiNumber int, OneTaiPower numeric(10,2), AllPower numeric(10,2)) 
    ELSE 
       truncate TABLE #tt     INSERT 
      INTO #tt
                SELECT a.DeptProcName, Equ_EquInfo.EquType, Equ_EquInfo.EquName, 
                    Equ_EquInfo.EquDes, COUNT(Equ_EquInfo.EquName) AS TaiNumber, 
                    STR(AVG(Equ_EquInfo.Power), 10, 2) AS OneTaiPower, 
                    SUM(Equ_EquInfo.Power) AS AllPower
              FROM Equ_EquInfo INNER JOIN
                    Pub_DeptProcInfo a ON Equ_EquInfo.DeptProcNo = a.DeptProcNo
              GROUP BY a.DeptProcName, Equ_EquInfo.EquName, Equ_EquInfo.EquDes, 
                    Equ_EquInfo.EquTypeSelect *,(select sum(Allpower) from #tt where #tt.DeptProcName=a.DeptProcName) As Litter
    from #tt a
    go第一次运行
    服务器: 消息 208,级别 16,状态 1,行 6
    对象名 '#tt' 无效。
    第二次就能显示出数据来
      

  3.   

    IF (SELECT object_id('tempdb..#tt')) IS NULL 改为:
    if exists(select 1 from tempdb..sysobjects where xtype='u' and left(name,3)='#tt')就可以了