2011-12-15 154 views
-1
Alter Procedure sp_Member(
@comcode int = 0, 
@SubComCode int = 0 
) 
as 
begin 
set nocount on 
If @comcode= 0 
begin 
select 
(select sum(amount)  
    from tbcoudet 
    where memcode=tbm.memcode and expyear=(select max(expyear) from tbexpyear) 
    and exists(select itemcode 
      from tbitem 
      where [email protected] and 
        [email protected] and 
        itemcode=tbcoudet.itemcode 
      ) 
    group by memcode,expyear 
)'TurnOver' 
, * into #subodh from tbmember tbm where can_flag='N' 
end 
If @SubComCode= 0 
begin 
Insert into #subodh 
select 
(select sum(amount)  
    from tbcoudet 
    where memcode=tbm.memcode and expyear=(select max(expyear) from tbexpyear) 
    and exists(select itemcode 
      from tbitem 
      where [email protected] and 
        itemcode=tbcoudet.itemcode 
      ) 
    group by memcode,expyear 
)'TurnOver' 
, * from tbmember tbm where can_flag='N' 
end 

select top 10 * from #subodh where TurnOver is not null order by TurnOver desc 

end 

我的問題是,當我要去執行EXEC sp_Member @comcode='1',@subcomcode='1' OR select top 10 * from #subodh where TurnOver is not null order by TurnOver這些查詢的話,我歌廳錯誤「無效的對象名稱#subodh'。」請告訴我爲什麼我geting這個錯誤,我該如何解決它...請無效的對象名稱#subodh「

回答

0

發生此錯誤,因爲表可能不會創建與insert into聲明。發生這種情況是因爲select可能沒有給出任何結果。所以編譯器不允許這個代碼,因爲將來可能會給出錯誤。

而不是讓一個insert into的,createtable #subodh第一(和drop它在結束),你不會得到這個問題。