早上好。 我很新的SQL和存儲過程的問題。首先我使用SQL 2008,我不知道這是否有所作爲。所以這是我的問題。我調用存儲過程,2次在傳遞不同值的行。(順便說一句,我只是說了with recompile
一部分。它沒有幫助)存儲過程 - 在第二次調用時出錯
EXECUTE crstored.sp_hhcAllActivityInstreamLoop
@measureVarIDName ='staticPayact6moID'
,@measureSuppVarIDName ='payact6moID'
,@measureDesc ='payact6moDesc'
,@measureSuppTable ='crsupp.payact6mo'
WITH RECOMPILE;
GO
EXECUTE crstored.sp_hhcAllActivityInstreamLoop
@measureVarIDName ='staticJourneyID'
,@measureSuppVarIDName ='journeyID'
,@measureDesc ='journeyDesc'
,@measureSuppTable ='crsupp.journey'
WITH RECOMPILE;
GO
我第一次稱呼它,它會跑。第二次,我得到以下幾點:
消息207,級別16,狀態1,行20無效列名 'staticJourneyID'。消息207,級別16,狀態1,行20無效列 名稱'staticJourneyID'。
爲了解決這個問題,我刪除了存儲過程。重新編譯它的一半,所以它只會引入參數,並用參數之一進行簡單的選擇。運行。刪除存儲過程。重新編譯完整的程序。然後我可以運行它的第二個電話。然而,現在只能運行JourneyID的東西,如果我必須返回並調用payAct6mos變量,我必須運行相同的刪除,重新編譯和運行場景。有沒有人有什麼建議?我現在唯一能想到的就是擁有不同名稱的相同代碼的兩個副本。我討厭必須保持這一點。
另外,我不知道,如果它使,而是因爲我是如何使用參數的差異,有人告訴我,附上我的代碼在存儲過程中使用:
select @[email protected]+' type line of code here '
謝謝!
只是我的問題的後續行動。我想到了。就像我說的,我只是SQL的新手。所以,結果我丟掉的表格,我在SP中使用動態SQL。只要我使用「常規」SQL刪除它們,調用就可以正常運行。我不確定這是爲什麼,但是你有它。感謝大家的幫助。
向我們展示存儲過程代碼。 – RBarryYoung 2013-05-10 13:42:35
因此,我無法發佈SP,因爲它的字符太多。 – user2370154 2013-05-10 15:02:34