可能没找到#w_table这个表吧!!
 你在存储过程中写一句:use yourdatabase试一试.只是建议.我想是你#table表的缘故.

解决方案 »

  1.   

    原因:不要用#Table这种方式,因为建立的表只在这个存储过程内部用,一旦存储过程执行完毕,表就消失了,所以数据库告诉你:"...invalid table #w_table..."。
    解决:可以建立一个临时表,在完全执行完毕后再删除。
      

  2.   

    原因:用#方式建立的临时表只能在所建立的存储过程中存在,一旦存储过程执行完毕就消失,所以数据库告诉你:"...invalid table #w_table..."
    解决:把#去掉,建立一个临时表,在用完后删除。
      

  3.   

    你这里根本就不用判断#w_table是否存在,直接create table 就完了。等到你第二次调用这个过程的时候,#w_table肯定不存在了。
    不过就语法来讲的话,楼主的写法好像应该变成:if exist(select * from #w_table)
    begin
      drop table #w_table
    end
      create table #w_table(......)