我有一個問題,我構建的用於處理某些數據的存儲過程在由SQL Server代理運行時似乎無法正常工作。如果我手動執行這項工作,一切正常。我也沒有錯誤。當SQL Server代理運行時,SQL Server存儲過程似乎不起作用
基本過程是我有三個源表(A,B,C),每個都是針對不同類型的服務。它們用於計算價值,由於計算過程每年都有所不同,因此有多個結果,因此ID B43將得出結果15,結果16對應於2014/15和2015/16財年。最終結果存儲在包含每個記錄的ID,Type和兩個結果值的主表中。
爲了使這項工作,我有六個順序運行的存儲過程,首先爲14/15計算,然後爲15/16計算。
每個存儲過程的一般結構是獲取數據,根據一些映射表對其進行操作並創建一個CalculationInput表,該表只是在那裏查看審計檢查的計算輸入。一旦完成,實際計算就會發生,並將結果存儲在臨時表#Results
中。在創建臨時表之後,我創建了一些索引,然後調用另一個存儲過程,在財政年度中傳遞一個參數,該參數接受臨時表並在主表上執行插入更新。之後,存儲過程結束,並且下一個被調用。
StoredProcA15 -> InsUpdProc
StoredProcB15 -> InsUpdProc
StoredProcC15 -> InsUpdProc
StoredProcA16 -> InsUpdProc
StoredProcB16 -> InsUpdProc
StoredProcC16 -> InsUpdProc
正如我之前說過的,如果我右鍵單擊作業並執行它,那麼這很好地工作。但是,如果我等待一週並查看主表,則新記錄將不會存在,儘管它們位於源表中以及CalculationInput表中。如果我然後運行構建臨時表的代碼段,那麼結果就會出現在那裏。
所以我最好的猜測是失敗的根源是對插入/更新過程的調用。在不瞭解SQL Server併發性的情況下,我想知道父存儲過程是否在等待插入/更新過程結束之前完成並轉到下一個存儲過程。
這是否可能?如果是這樣,解決它的最好方法是什麼?
什麼[SQL Server代理錯誤日誌(https://msdn.microsoft.com/en-us/library/ms175488(V = SQL.105)的.aspx)? –
沒有錯誤信息 – Matt